MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_hypoelastic.fpp.f90 File Reference

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

Detailed Description

Contains module m_hypoelastic.

Definition in file m_hypoelastic.fpp.f90.