MFC
Exascale flow solver
Loading...
Searching...
No Matches
m_viscous Module Reference

Computes viscous stress tensors and diffusive flux contributions for the Navier–Stokes equations. More...

Functions/Subroutines

impure subroutine, public s_initialize_viscous_module
 Initialize the viscous module.
subroutine, public s_compute_viscous_stress_cylindrical_boundary (q_prim_vf, grad_x_vf, grad_y_vf, grad_z_vf, tau_re_vf, ix, iy, iz)
 Compute viscous stress tensor near cylindrical axis, avoiding 1/r singularity at y_cb(-1)=0.
subroutine, public s_get_viscous (ql_prim_rsx_vf, ql_prim_rsy_vf, ql_prim_rsz_vf, dql_prim_dx_n, dql_prim_dy_n, dql_prim_dz_n, ql_prim, qr_prim_rsx_vf, qr_prim_rsy_vf, qr_prim_rsz_vf, dqr_prim_dx_n, dqr_prim_dy_n, dqr_prim_dz_n, qr_prim, q_prim_qp, dq_prim_dx_qp, dq_prim_dy_qp, dq_prim_dz_qp, ix, iy, iz)
 Computes viscous terms.
subroutine s_reconstruct_cell_boundary_values_visc (v_vf, vl_x, vl_y, vl_z, vr_x, vr_y, vr_z, norm_dir, vl_prim_vf, vr_prim_vf, ix, iy, iz)
 Reconstruct left and right cell-boundary values of viscous primitive variables.
subroutine, public s_reconstruct_cell_boundary_values_visc_deriv (v_vf, vl_x, vl_y, vl_z, vr_x, vr_y, vr_z, norm_dir, vl_prim_vf, vr_prim_vf, ix, iy, iz)
 Reconstruct left and right cell-boundary values of viscous primitive variable derivatives.
subroutine s_apply_scalar_divergence_theorem (vl_vf, vr_vf, dv_ds_vf, norm_dir, ix, iy, iz, iv_in, dl, dim, buff_size_in)
 Compute cell-average spatial derivatives via the scalar divergence theorem.
subroutine s_compute_fd_gradient (var, grad_x, grad_y, grad_z)
 Computes the scalar gradient fields via finite differences.
subroutine, public s_compute_viscous_stress_tensor (viscous_stress_tensor, q_prim_vf, dynamic_viscosity, i, j, k)
 Compute the viscous stress tensor at a single grid cell using finite-difference velocity gradients.
impure subroutine, public s_finalize_viscous_module ()
 Finalize the viscous module.

Variables

type(int_bounds_infoiv
type(int_bounds_infois1_viscous
type(int_bounds_infois2_viscous
type(int_bounds_infois3_viscous
real(wp), dimension(:,:), allocatable res_viscous

Detailed Description

Computes viscous stress tensors and diffusive flux contributions for the Navier–Stokes equations.

Function/Subroutine Documentation

◆ s_apply_scalar_divergence_theorem()

subroutine m_viscous::s_apply_scalar_divergence_theorem ( type(scalar_field), dimension(iv%beg:iv%end), intent(in) vl_vf,
type(scalar_field), dimension(iv%beg:iv%end), intent(in) vr_vf,
type(scalar_field), dimension(iv%beg:iv%end), intent(inout) dv_ds_vf,
integer, intent(in) norm_dir,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz,
type(int_bounds_info), intent(in) iv_in,
real(wp), dimension(-buff_size_in:dim + buff_size_in), intent(in) dl,
integer, intent(in) dim,
integer, intent(in) buff_size_in )

Compute cell-average spatial derivatives via the scalar divergence theorem.

Definition at line 2939 of file m_viscous.fpp.f90.

Here is the caller graph for this function:

◆ s_compute_fd_gradient()

subroutine m_viscous::s_compute_fd_gradient ( type(scalar_field), intent(in) var,
type(scalar_field), intent(inout) grad_x,
type(scalar_field), intent(inout) grad_y,
type(scalar_field), intent(inout) grad_z )

Computes the scalar gradient fields via finite differences.

Definition at line 3156 of file m_viscous.fpp.f90.

Here is the caller graph for this function:

◆ s_compute_viscous_stress_cylindrical_boundary()

subroutine, public m_viscous::s_compute_viscous_stress_cylindrical_boundary ( type(scalar_field), dimension(sys_size), intent(in) q_prim_vf,
type(scalar_field), dimension(num_dims), intent(in) grad_x_vf,
type(scalar_field), dimension(num_dims), intent(in) grad_y_vf,
type(scalar_field), dimension(num_dims), intent(in) grad_z_vf,
type(scalar_field), dimension(1:sys_size), intent(inout) tau_re_vf,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz )

Compute viscous stress tensor near cylindrical axis, avoiding 1/r singularity at y_cb(-1)=0.

Definition at line 438 of file m_viscous.fpp.f90.

◆ s_compute_viscous_stress_tensor()

subroutine, public m_viscous::s_compute_viscous_stress_tensor ( real(wp), dimension(1:3,1:3), intent(inout) viscous_stress_tensor,
type(scalar_field), dimension(1:sys_size), intent(in) q_prim_vf,
real(wp), intent(in) dynamic_viscosity,
integer, intent(in) i,
integer, intent(in) j,
integer, intent(in) k )

Compute the viscous stress tensor at a single grid cell using finite-difference velocity gradients.

Definition at line 3689 of file m_viscous.fpp.f90.

◆ s_finalize_viscous_module()

impure subroutine, public m_viscous::s_finalize_viscous_module

Finalize the viscous module.

Definition at line 3768 of file m_viscous.fpp.f90.

Here is the caller graph for this function:

◆ s_get_viscous()

subroutine, public m_viscous::s_get_viscous ( real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) ql_prim_rsx_vf,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) ql_prim_rsy_vf,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) ql_prim_rsz_vf,
type(vector_field), dimension(1:num_dims), intent(inout) dql_prim_dx_n,
type(vector_field), dimension(1:num_dims), intent(inout) dql_prim_dy_n,
type(vector_field), dimension(1:num_dims), intent(inout) dql_prim_dz_n,
type(vector_field), dimension(num_dims), intent(inout) ql_prim,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) qr_prim_rsx_vf,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) qr_prim_rsy_vf,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) qr_prim_rsz_vf,
type(vector_field), dimension(1:num_dims), intent(inout) dqr_prim_dx_n,
type(vector_field), dimension(1:num_dims), intent(inout) dqr_prim_dy_n,
type(vector_field), dimension(1:num_dims), intent(inout) dqr_prim_dz_n,
type(vector_field), dimension(num_dims), intent(inout) qr_prim,
type(vector_field), intent(in) q_prim_qp,
type(vector_field), dimension(1), intent(inout) dq_prim_dx_qp,
type(vector_field), dimension(1), intent(inout) dq_prim_dy_qp,
type(vector_field), dimension(1), intent(inout) dq_prim_dz_qp,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz )

Computes viscous terms.

Definition at line 1337 of file m_viscous.fpp.f90.

Here is the call graph for this function:

◆ s_initialize_viscous_module()

impure subroutine, public m_viscous::s_initialize_viscous_module

Initialize the viscous module.

Definition at line 369 of file m_viscous.fpp.f90.

Here is the caller graph for this function:

◆ s_reconstruct_cell_boundary_values_visc()

subroutine m_viscous::s_reconstruct_cell_boundary_values_visc ( type(scalar_field), dimension(iv%beg:iv%end), intent(in) v_vf,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) vl_x,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) vl_y,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) vl_z,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) vr_x,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) vr_y,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,1:), intent(inout) vr_z,
integer, intent(in) norm_dir,
type(scalar_field), dimension(iv%beg:iv%end), intent(inout) vl_prim_vf,
type(scalar_field), dimension(iv%beg:iv%end), intent(inout) vr_prim_vf,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz )

Reconstruct left and right cell-boundary values of viscous primitive variables.

Definition at line 2457 of file m_viscous.fpp.f90.

Here is the caller graph for this function:

◆ s_reconstruct_cell_boundary_values_visc_deriv()

subroutine, public m_viscous::s_reconstruct_cell_boundary_values_visc_deriv ( type(scalar_field), dimension(iv%beg:iv%end), intent(in) v_vf,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,iv%beg:), intent(inout) vl_x,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,iv%beg:), intent(inout) vl_y,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,iv%beg:), intent(inout) vl_z,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,iv%beg:), intent(inout) vr_x,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,iv%beg:), intent(inout) vr_y,
real(wp), dimension(idwbuff(1)%beg:,idwbuff(2)%beg:,idwbuff(3)%beg:,iv%beg:), intent(inout) vr_z,
integer, intent(in) norm_dir,
type(scalar_field), dimension(iv%beg:iv%end), intent(inout) vl_prim_vf,
type(scalar_field), dimension(iv%beg:iv%end), intent(inout) vr_prim_vf,
type(int_bounds_info), intent(in) ix,
type(int_bounds_info), intent(in) iy,
type(int_bounds_info), intent(in) iz )

Reconstruct left and right cell-boundary values of viscous primitive variable derivatives.

Definition at line 2699 of file m_viscous.fpp.f90.

Variable Documentation

◆ is1_viscous

type(int_bounds_info) m_viscous::is1_viscous

Definition at line 340 of file m_viscous.fpp.f90.

◆ is2_viscous

type(int_bounds_info) m_viscous::is2_viscous

Definition at line 340 of file m_viscous.fpp.f90.

◆ is3_viscous

type(int_bounds_info) m_viscous::is3_viscous

Definition at line 340 of file m_viscous.fpp.f90.

◆ iv

type(int_bounds_info) m_viscous::iv

Definition at line 339 of file m_viscous.fpp.f90.

◆ res_viscous

real(wp), dimension(:,:), allocatable m_viscous::res_viscous

Definition at line 353 of file m_viscous.fpp.f90.