|
MFC
Exascale flow solver
|
Computes hypoelastic stress-rate source terms and damage-state evolution. More...
Functions/Subroutines | |
| impure subroutine, public | s_initialize_hypoelastic_module |
| Initialize the hypoelastic module. | |
| subroutine, public | s_compute_hypoelastic_rhs_finite_diff_per_sweep (idir, q_prim_vf, rhs_vf) |
| Legacy FD-based hypoelastic RHS (Mode 1: HLL). Uses finite-difference velocity gradients computed from cell-centered primitive variables. Called once per direction inside the dim-split loop. Supports 1D/2D/3D Cartesian and cylindrical geometry. | |
| subroutine, public | s_compute_hypoelastic_rhs_iface (q_prim_vf, rhs_vf, nc_iface_vel_n) |
| Interface-consistent hypoelastic RHS (Mode 2: HLL/HLLC). Uses interface velocities from the Riemann solver to compute velocity gradients. Called once after all dimensional sweeps. Supports 1D, 2D Cartesian, 2D axisymmetric, and 3D Cartesian. | |
| subroutine, public | s_compute_hypoelastic_rhs_axisym_geom_iface (q_prim_vf, rhs_vf, nc_iface_vel_x_vf, nc_iface_vel_y_vf) |
| Axisymmetric geometric source terms for the hypoelastic stress evolution, using interface velocities. Adds the v/r and div(u) contributions that arise in cylindrical (r-z) coordinates: tau_xx, tau_xr, tau_rr get a -rho*(v/r) source; tau_thetatheta gets a combined divergence and hoop-stress source. Called from s_compute_hypoelastic_rhs_iface when grid_geometry == 2. | |
| subroutine, public | s_compute_hypoelastic_rhs_axisym_geom_dual_pass (q_prim_vf, rhs_vf, nc_iface_vel_y_vf, nc_iface_vel_y_hatr_vf) |
| Cylindrical completion for the dual-pass (anchored HLLD) hypoelastic path. The anchored augmented fluxes already carry every axial/radial derivative term of the stress law and the stress rows of flux_gsrc are zero, so the complete remaining cylindrical physics is the cell-local v/r family below: the advective metric -q_s*v/r plus the constitutive v/r terms (and +/-K*C for the volume fractions under alt_soundspeed). The discrete C = v/r averages the cell's own two anchored radial face traces (hat_L outer face, hat_R inner face) over y_cc, so no absolute axial velocity enters and uniform axial translation gives exactly zero. Called once after the two anchored partial RHS's are summed. Continuum damage needs no handling here: HLLD + cont_damage is prohibited (m_checker.fpp). | |
| impure subroutine, public | s_finalize_hypoelastic_module () |
| Finalize the hypoelastic module. | |
| subroutine, public | s_compute_damage_state (q_cons_vf, rhs_vf) |
| Compute the continuum damage source term from the principal stress state. | |
Variables | |
| real(wp), dimension(:), allocatable | gs_hypo |
| real(wp), dimension(:,:,:), allocatable | du_dx_hypo |
| real(wp), dimension(:,:,:), allocatable | du_dy_hypo |
| real(wp), dimension(:,:,:), allocatable | du_dz_hypo |
| real(wp), dimension(:,:,:), allocatable | dv_dx_hypo |
| real(wp), dimension(:,:,:), allocatable | dv_dy_hypo |
| real(wp), dimension(:,:,:), allocatable | dv_dz_hypo |
| real(wp), dimension(:,:,:), allocatable | dw_dx_hypo |
| real(wp), dimension(:,:,:), allocatable | dw_dy_hypo |
| real(wp), dimension(:,:,:), allocatable | dw_dz_hypo |
| real(wp), dimension(:,:,:), allocatable | rho_k_field |
| real(wp), dimension(:,:,:), allocatable | g_k_field |
| real(wp), dimension(:,:), allocatable | fd_coeff_x_hypo |
| real(wp), dimension(:,:), allocatable | fd_coeff_y_hypo |
| real(wp), dimension(:,:), allocatable | fd_coeff_z_hypo |
Computes hypoelastic stress-rate source terms and damage-state evolution.
| subroutine, public m_hypoelastic::s_compute_damage_state | ( | type(scalar_field), dimension(sys_size), intent(in) | q_cons_vf, |
| type(scalar_field), dimension(sys_size), intent(inout) | rhs_vf ) |
Compute the continuum damage source term from the principal stress state.
Definition at line 2286 of file m_hypoelastic.fpp.f90.
| subroutine, public m_hypoelastic::s_compute_hypoelastic_rhs_axisym_geom_dual_pass | ( | type(scalar_field), dimension(sys_size), intent(in) | q_prim_vf, |
| type(scalar_field), dimension(sys_size), intent(inout) | rhs_vf, | ||
| type(scalar_field), dimension(:), intent(in) | nc_iface_vel_y_vf, | ||
| type(scalar_field), dimension(:), intent(in) | nc_iface_vel_y_hatr_vf ) |
Cylindrical completion for the dual-pass (anchored HLLD) hypoelastic path. The anchored augmented fluxes already carry every axial/radial derivative term of the stress law and the stress rows of flux_gsrc are zero, so the complete remaining cylindrical physics is the cell-local v/r family below: the advective metric -q_s*v/r plus the constitutive v/r terms (and +/-K*C for the volume fractions under alt_soundspeed). The discrete C = v/r averages the cell's own two anchored radial face traces (hat_L outer face, hat_R inner face) over y_cc, so no absolute axial velocity enters and uniform axial translation gives exactly zero. Called once after the two anchored partial RHS's are summed. Continuum damage needs no handling here: HLLD + cont_damage is prohibited (m_checker.fpp).
| q_prim_vf | Primitive variables |
| rhs_vf | rhs variables |
| nc_iface_vel_y_vf | hat_L-pass radial-direction interface velocities |
| nc_iface_vel_y_hatR_vf | hat_R-pass radial-direction interface velocities |
Definition at line 1928 of file m_hypoelastic.fpp.f90.
| subroutine, public m_hypoelastic::s_compute_hypoelastic_rhs_axisym_geom_iface | ( | type(scalar_field), dimension(sys_size), intent(in) | q_prim_vf, |
| type(scalar_field), dimension(sys_size), intent(inout) | rhs_vf, | ||
| type(scalar_field), dimension(:), intent(in) | nc_iface_vel_x_vf, | ||
| type(scalar_field), dimension(:), intent(in) | nc_iface_vel_y_vf ) |
Axisymmetric geometric source terms for the hypoelastic stress evolution, using interface velocities. Adds the v/r and div(u) contributions that arise in cylindrical (r-z) coordinates: tau_xx, tau_xr, tau_rr get a -rho*(v/r) source; tau_thetatheta gets a combined divergence and hoop-stress source. Called from s_compute_hypoelastic_rhs_iface when grid_geometry == 2.
| q_prim_vf | Primitive variables |
| rhs_vf | rhs variables |
| nc_iface_vel_x_vf | Interface velocities in x-direction |
| nc_iface_vel_y_vf | Interface velocities in y-direction |
Definition at line 1799 of file m_hypoelastic.fpp.f90.
| subroutine, public m_hypoelastic::s_compute_hypoelastic_rhs_finite_diff_per_sweep | ( | integer, intent(in) | idir, |
| type(scalar_field), dimension(sys_size), intent(in) | q_prim_vf, | ||
| type(scalar_field), dimension(sys_size), intent(inout) | rhs_vf ) |
Legacy FD-based hypoelastic RHS (Mode 1: HLL). Uses finite-difference velocity gradients computed from cell-centered primitive variables. Called once per direction inside the dim-split loop. Supports 1D/2D/3D Cartesian and cylindrical geometry.
| idir | Dimension splitting index |
| q_prim_vf | Primitive variables |
| rhs_vf | rhs variables |
Definition at line 783 of file m_hypoelastic.fpp.f90.
| subroutine, public m_hypoelastic::s_compute_hypoelastic_rhs_iface | ( | type(scalar_field), dimension(sys_size), intent(in) | q_prim_vf, |
| type(scalar_field), dimension(sys_size), intent(inout) | rhs_vf, | ||
| type(vector_field), dimension(:), intent(in) | nc_iface_vel_n ) |
Interface-consistent hypoelastic RHS (Mode 2: HLL/HLLC). Uses interface velocities from the Riemann solver to compute velocity gradients. Called once after all dimensional sweeps. Supports 1D, 2D Cartesian, 2D axisymmetric, and 3D Cartesian.
| q_prim_vf | Primitive variables |
| rhs_vf | rhs variables |
| nc_iface_vel_n | Interface velocities per direction |
Definition at line 1396 of file m_hypoelastic.fpp.f90.
| impure subroutine, public m_hypoelastic::s_finalize_hypoelastic_module |
Finalize the hypoelastic module.
Definition at line 2028 of file m_hypoelastic.fpp.f90.
| impure subroutine, public m_hypoelastic::s_initialize_hypoelastic_module |
Initialize the hypoelastic module.
Definition at line 395 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::du_dx_hypo |
Definition at line 349 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::du_dy_hypo |
Definition at line 349 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::du_dz_hypo |
Definition at line 349 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::dv_dx_hypo |
Definition at line 350 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::dv_dy_hypo |
Definition at line 350 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::dv_dz_hypo |
Definition at line 350 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::dw_dx_hypo |
Definition at line 351 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::dw_dy_hypo |
Definition at line 351 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::dw_dz_hypo |
Definition at line 351 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:), allocatable m_hypoelastic::fd_coeff_x_hypo |
Definition at line 377 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:), allocatable m_hypoelastic::fd_coeff_y_hypo |
Definition at line 378 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:), allocatable m_hypoelastic::fd_coeff_z_hypo |
Definition at line 379 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::g_k_field |
Definition at line 364 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:), allocatable m_hypoelastic::gs_hypo |
Definition at line 336 of file m_hypoelastic.fpp.f90.
| real(wp), dimension(:,:,:), allocatable m_hypoelastic::rho_k_field |
Definition at line 364 of file m_hypoelastic.fpp.f90.