|
MFC
Exascale flow solver
|
Contains module m_hypoelastic. More...
Go to the source code of this file.
Modules | |
| module | m_hypoelastic |
| Computes hypoelastic stress-rate source terms and damage-state evolution. | |
Functions/Subroutines | |
| impure subroutine, public | m_hypoelastic::s_initialize_hypoelastic_module |
| Initialize the hypoelastic module. | |
| subroutine, public | m_hypoelastic::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 | m_hypoelastic::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 | m_hypoelastic::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 | m_hypoelastic::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 | m_hypoelastic::s_finalize_hypoelastic_module () |
| Finalize the hypoelastic module. | |
| subroutine, public | m_hypoelastic::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 | m_hypoelastic::gs_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::du_dx_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::du_dy_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::du_dz_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::dv_dx_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::dv_dy_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::dv_dz_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::dw_dx_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::dw_dy_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::dw_dz_hypo |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::rho_k_field |
| real(wp), dimension(:,:,:), allocatable | m_hypoelastic::g_k_field |
| real(wp), dimension(:,:), allocatable | m_hypoelastic::fd_coeff_x_hypo |
| real(wp), dimension(:,:), allocatable | m_hypoelastic::fd_coeff_y_hypo |
| real(wp), dimension(:,:), allocatable | m_hypoelastic::fd_coeff_z_hypo |
Contains module m_hypoelastic.
Definition in file m_hypoelastic.fpp.f90.