atl_eqn_euler_implicit_pen Subroutine

public subroutine atl_eqn_euler_implicit_pen(material, eqn, weighted_dt, ndims, poly_proj, state, timestep_rhs)

Solve the equation system with just the penalization terms to find an implicit update for the IMEX timestepping procedure.

Arguments

TypeIntentOptionalAttributesName
type(atl_material_type), intent(in) :: material

Definition of the material, which directly describes the penalization.

We expect the mask function Chi to be defined in materialdat(:,:,1), the obstacle velocity U_o in materialdat(:,:,2:nDims+1) and the obstacle Temperature T_o in materialdat(:,:,nDims+2).

type(atl_euler_type), intent(in) :: eqn

Definition of parameters in the Euler equations.

This has to provide cv, the viscous permeability and the thermal permeability.

real(kind=rk), intent(in) :: weighted_dt

Timestep which is already weighted by the time integration scheme.

integer, intent(in) :: ndims

Number of dimensions, the equation system is computed in (2 or 3).

type(ply_poly_project_type), intent(inout) :: poly_proj

Description of the projection for the material.

real(kind=rk), intent(inout) :: state(:,:,:)

The state variables of the equation system, they will be updated to the solution of the implicit computation for penalization.

real(kind=rk), intent(out) :: timestep_rhs(:,:,:)

Right hand side contribution by the implicit calculation.


Calls

proc~~atl_eqn_euler_implicit_pen~~CallsGraph proc~atl_eqn_euler_implicit_pen atl_eqn_euler_implicit_pen proc~ply_convert2oversample ply_convert2oversample proc~atl_eqn_euler_implicit_pen->proc~ply_convert2oversample interface~ply_poly_project_n2m ply_poly_project_n2m proc~atl_eqn_euler_implicit_pen->interface~ply_poly_project_n2m interface~ply_poly_project_m2n ply_poly_project_m2n proc~atl_eqn_euler_implicit_pen->interface~ply_poly_project_m2n proc~ply_convertfromoversample ply_convertFromOversample proc~atl_eqn_euler_implicit_pen->proc~ply_convertfromoversample proc~ply_convert2oversample_2d ply_convert2oversample_2d proc~ply_convert2oversample->proc~ply_convert2oversample_2d proc~ply_convert2oversample_3d ply_convert2oversample_3d proc~ply_convert2oversample->proc~ply_convert2oversample_3d proc~ply_convert2oversample_1d ply_convert2oversample_1d proc~ply_convert2oversample->proc~ply_convert2oversample_1d proc~ply_poly_project_n2m_multivar ply_poly_project_n2m_multiVar interface~ply_poly_project_n2m->proc~ply_poly_project_n2m_multivar proc~ply_poly_project_m2n_multivar ply_poly_project_m2n_multiVar interface~ply_poly_project_m2n->proc~ply_poly_project_m2n_multivar proc~ply_convertfromoversample_3d ply_convertFromOversample_3d proc~ply_convertfromoversample->proc~ply_convertfromoversample_3d proc~ply_convertfromoversample_1d ply_convertFromOversample_1d proc~ply_convertfromoversample->proc~ply_convertfromoversample_1d proc~ply_convertfromoversample_2d ply_convertFromOversample_2d proc~ply_convertfromoversample->proc~ply_convertfromoversample_2d proc~ply_fxt_n2m_1d ply_fxt_n2m_1D proc~ply_poly_project_n2m_multivar->proc~ply_fxt_n2m_1d interface~ply_pnttoleg_2d ply_pntToLeg_2D proc~ply_poly_project_n2m_multivar->interface~ply_pnttoleg_2d proc~ply_l2p_trafo_2d ply_l2p_trafo_2D proc~ply_poly_project_n2m_multivar->proc~ply_l2p_trafo_2d proc~ply_fxt_n2m_3d ply_fxt_n2m_3D proc~ply_poly_project_n2m_multivar->proc~ply_fxt_n2m_3d proc~ply_fxt_n2m_2d ply_fxt_n2m_2D proc~ply_poly_project_n2m_multivar->proc~ply_fxt_n2m_2d proc~ply_l2p_trafo_1d ply_l2p_trafo_1D proc~ply_poly_project_n2m_multivar->proc~ply_l2p_trafo_1d proc~ply_l2p_trafo_3d ply_l2p_trafo_3D proc~ply_poly_project_n2m_multivar->proc~ply_l2p_trafo_3d interface~ply_pnttoleg_3d ply_pntToLeg_3D proc~ply_poly_project_n2m_multivar->interface~ply_pnttoleg_3d proc~ply_fxt_m2n_3d ply_fxt_m2n_3D proc~ply_poly_project_m2n_multivar->proc~ply_fxt_m2n_3d interface~ply_legtopnt_2d ply_legToPnt_2D proc~ply_poly_project_m2n_multivar->interface~ply_legtopnt_2d proc~ply_fxt_m2n_1d ply_fxt_m2n_1D proc~ply_poly_project_m2n_multivar->proc~ply_fxt_m2n_1d proc~ply_poly_project_m2n_multivar->proc~ply_l2p_trafo_2d proc~ply_fxt_m2n_2d ply_fxt_m2n_2D proc~ply_poly_project_m2n_multivar->proc~ply_fxt_m2n_2d proc~ply_poly_project_m2n_multivar->proc~ply_l2p_trafo_1d proc~ply_poly_project_m2n_multivar->proc~ply_l2p_trafo_3d interface~ply_legtopnt_3d ply_LegTopnt_3D proc~ply_poly_project_m2n_multivar->interface~ply_legtopnt_3d

Called by

proc~~atl_eqn_euler_implicit_pen~~CalledByGraph proc~atl_eqn_euler_implicit_pen atl_eqn_euler_implicit_pen proc~implicit_update implicit_update proc~implicit_update->proc~atl_eqn_euler_implicit_pen proc~mesh_timestep_imexrk mesh_timestep_imexrk proc~mesh_timestep_imexrk->proc~implicit_update

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iMatElem
integer, private :: iElem
integer, private :: iPoint
integer, private :: iDir
integer, private :: nElems
integer, private :: nPoints
integer, private :: nVars
real(kind=rk), private, parameter:: numzero =8*tiny(weighted_dt)
real(kind=rk), private :: inv_visc_perm
real(kind=rk), private :: inv_thrm_perm
real(kind=rk), private :: viscous_time_weight
real(kind=rk), private :: thermal_time_weight
real(kind=rk), private :: viscous_fact
real(kind=rk), private :: thermal_fact
real(kind=rk), private :: Chi
real(kind=rk), private :: U_o(3)
real(kind=rk), private :: T_o
real(kind=rk), private :: relvel
real(kind=rk), private, allocatable:: modalCoeff(:,:)
real(kind=rk), private, allocatable:: modalCoeff_cur(:,:)
real(kind=rk), private, allocatable:: pointVal(:,:)
real(kind=rk), private, allocatable:: cur(:,:)
real(kind=rk), private, allocatable:: velocity(:,:)
real(kind=rk), private, allocatable:: velmag(:)
real(kind=rk), private, allocatable:: temperature(:)