|
MFC
Exascale flow solver
|
Computes gravitational and body force source terms for the momentum equations. More...
Functions/Subroutines | |
| impure subroutine, public | s_initialize_body_forces_module |
| Initialize the body forces module. When synthetic_turbulence is enabled, generates random wave vectors for each energy shell on rank 0, then broadcasts to all MPI ranks and copies to GPU. | |
| subroutine | s_compute_acceleration (t) |
| Compute the acceleration at time t. | |
| subroutine | s_compute_mixture_density (q_cons_vf) |
| Compute the mixture density at each cell center. | |
| subroutine, public | s_compute_body_forces_rhs (q_prim_vf, q_cons_vf, rhs_vf) |
| Compute the body force source terms for momentum and energy equations. | |
| subroutine, public | s_compute_synthetic_forces_rhs (q_prim_vf, q_cons_vf, rhs_vf) |
| Compute the synthetic turbulence RHS contribution. | |
| impure subroutine, public | s_finalize_body_forces_module |
| Finalize the body forces module. | |
Variables | |
| real(wp), dimension(:,:,:), allocatable | rhom |
| integer | num_synthetic_wave_numbers |
| real(wp), dimension(:), allocatable | synthetic_k_x |
| real(wp), dimension(:), allocatable | synthetic_k_y |
| real(wp), dimension(:), allocatable | synthetic_k_z |
| real(wp), dimension(:), allocatable | synthetic_phase |
| real(wp), dimension(:), allocatable | synthetic_amp |
| real(wp), dimension(:), allocatable | synthetic_ex |
| real(wp), dimension(:), allocatable | synthetic_ey |
| real(wp), dimension(:), allocatable | synthetic_ez |
Computes gravitational and body force source terms for the momentum equations.
|
private |
Compute the acceleration at time t.
Definition at line 920 of file m_body_forces.fpp.f90.
| subroutine, public m_body_forces::s_compute_body_forces_rhs | ( | type(scalar_field), dimension(sys_size), intent(in) | q_prim_vf, |
| type(scalar_field), dimension(sys_size), intent(in) | q_cons_vf, | ||
| type(scalar_field), dimension(sys_size), intent(inout) | rhs_vf ) |
Compute the body force source terms for momentum and energy equations.
Definition at line 1004 of file m_body_forces.fpp.f90.
|
private |
Compute the mixture density at each cell center.
Definition at line 953 of file m_body_forces.fpp.f90.
| subroutine, public m_body_forces::s_compute_synthetic_forces_rhs | ( | type(scalar_field), dimension(sys_size), intent(in) | q_prim_vf, |
| type(scalar_field), dimension(sys_size), intent(in) | q_cons_vf, | ||
| type(scalar_field), dimension(sys_size), intent(inout) | rhs_vf ) |
Compute the synthetic turbulence RHS contribution.
Each Fourier mode m has wave vector k_m and a pre-computed solenoidal (divergence-free) direction e_m perpendicular to k_m. The force field is F = rho * (sum_m A_m * cos(k_m.(x-U*t*xhat) + phi_m) * e_m) * (U/Lx) * G. This excites all velocity components correctly and is zero outside the bounding box of the Gaussian window.
Definition at line 1198 of file m_body_forces.fpp.f90.
| impure subroutine, public m_body_forces::s_finalize_body_forces_module |
Finalize the body forces module.
Definition at line 1372 of file m_body_forces.fpp.f90.
| impure subroutine, public m_body_forces::s_initialize_body_forces_module |
Initialize the body forces module. When synthetic_turbulence is enabled, generates random wave vectors for each energy shell on rank 0, then broadcasts to all MPI ranks and copies to GPU.
Definition at line 401 of file m_body_forces.fpp.f90.
|
private |
Definition at line 353 of file m_body_forces.fpp.f90.
|
private |
Definition at line 340 of file m_body_forces.fpp.f90.
|
private |
Definition at line 367 of file m_body_forces.fpp.f90.
|
private |
Definition at line 372 of file m_body_forces.fpp.f90.
|
private |
Definition at line 372 of file m_body_forces.fpp.f90.
|
private |
Definition at line 372 of file m_body_forces.fpp.f90.
|
private |
Definition at line 366 of file m_body_forces.fpp.f90.
|
private |
Definition at line 366 of file m_body_forces.fpp.f90.
|
private |
Definition at line 366 of file m_body_forces.fpp.f90.
|
private |
Definition at line 367 of file m_body_forces.fpp.f90.