atl_physCheck_module Module

Module provides routines and datatypes to check/correct the physical values of a given state.


Uses

Used by

  • module~~atl_physcheck_module~~UsedByGraph module~atl_physcheck_module atl_physCheck_module module~atl_container_module atl_container_module module~atl_container_module->module~atl_physcheck_module module~atl_program_module atl_program_module module~atl_program_module->module~atl_physcheck_module module~atl_program_module->module~atl_container_module module~atl_initialize_module atl_initialize_module module~atl_program_module->module~atl_initialize_module program~ateles ateles program~ateles->module~atl_container_module program~ateles->module~atl_program_module program~atl_harvesting atl_harvesting program~atl_harvesting->module~atl_container_module program~atl_harvesting->module~atl_program_module program~atl_harvesting->module~atl_initialize_module module~atl_initialize_module->module~atl_container_module

Contents


Derived Types

type, public :: atl_physCheck_type

Datatype to describe the physical checks.

Components

TypeVisibilityAttributesNameInitial
logical, private :: isActive =.false.

Is the check active

integer, private :: iterationInterval =huge(int(1))

The interval for the physical checks.

real(kind=rk), private :: tolerance =1.0e-13_rk

The tolerance below which a state will be marked as unphysical


Functions

private function atl_cflCheck_euler(fixed_dt, nPoly, length, maxVel) result(isPhysical)

Routine to check if the physicle values of the state are physically meaningful or not for the Euler and Linear Euler equation, checking the cfl for a fixed timestep

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: fixed_dt

Fixed timestep prescribed in ateles

integer, intent(in) :: nPoly

Order per spatial direction

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

Length of the element

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

max Velocity for calculating the cfl

Return Value logical

private function atl_cflCheck_navier(fixed_dt, nPoly, length, maxVel, mu, therm_cond) result(isPhysical)

Routine to check if the physicle values of the state are physically meaningful or not for the Navier-Stokes equation, checking the cfl for a fixed timestep

Arguments

TypeIntentOptionalAttributesName
real(kind=rk), intent(in) :: fixed_dt

Fixed timestep prescribed in ateles

integer, intent(in) :: nPoly

Order per spatial direction

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

Length of the element

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

max Velocity for calculating the cfl

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

vicosity variable

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

thermal conductivity

Return Value logical

private function atl_physCheck_euler1d(statedata, euler1d, scheme, poly_proj, nElems_fluid, tolerance) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful or not for the Euler equation.

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_euler_type), intent(in) :: euler1d
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid
real(kind=rk), intent(in) :: tolerance

Return Value logical

private function atl_physCheck_euler2d(statedata, euler2d, scheme, poly_proj, nElems_fluid, tolerance, total) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful or not for the Euler equation.

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_euler_type), intent(in) :: euler2d
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid
real(kind=rk), intent(in) :: tolerance
integer(kind=long_k), intent(in) :: total(:)

Return Value logical

private function atl_physCheck_euler(statedata, euler, scheme, poly_proj, nElems_fluid, tolerance) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful or not for the Euler equation.

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_euler_type), intent(in) :: euler
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid
real(kind=rk), intent(in) :: tolerance

Return Value logical

private function atl_physCheck_Rans(statedata, euler, scheme, poly_proj, nElems_fluid, tolerance) result(isPhysical)

Routine to check if the physical values of a state are

Read more…

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_euler_type), intent(in) :: euler
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid
real(kind=rk), intent(in) :: tolerance

Return Value logical

private function atl_physCheck_Rans_2d(statedata, euler, scheme, poly_proj, nElems_fluid, tolerance) result(isPhysical)

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_euler_type), intent(in) :: euler
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid
real(kind=rk), intent(in) :: tolerance

Return Value logical

private function atl_physCheck_acoustic_2d(statedata, scheme, poly_proj, nElems_fluid) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful or not for the acoustic 2d equation.

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid

Return Value logical

private function atl_physCheck_acoustic(statedata, scheme, poly_proj, nElems_fluid) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful or not for the acoustic equation.

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid

Return Value logical

private function atl_physCheck_lineareuler(statedata, scheme, poly_proj, nElems_fluid) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful or not for the linear euler equation.

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid

Return Value logical

private function atl_physCheck_lineareuler_2d(statedata, scheme, poly_proj, nElems_fluid) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful

Read more…

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
type(atl_scheme_type), intent(in) :: scheme
type(ply_poly_project_type), intent(inout) :: poly_proj
integer, intent(in) :: nElems_fluid

Return Value logical

private function atl_physCheck_maxwell(statedata, nElems_fluid, nDofs) result(isPhysical)

Routine to check if the physical values of a state are physically meaningful or not for the Maxwell equation.

Arguments

TypeIntentOptionalAttributesName
type(atl_statedata_type), intent(in) :: statedata
integer, intent(in) :: nElems_fluid
integer, intent(in) :: nDofs

Return Value logical


Subroutines

public subroutine atl_init_physCheck(check, conf, equation)

Arguments

TypeIntentOptionalAttributesName
type(atl_physCheck_type), intent(out) :: check

The physical check to init.

type(flu_State), intent(in) :: conf

Handle for the Lua config file

type(atl_Equations_type), intent(in) :: equation

The equation you are simulating.

public subroutine atl_check_val(minlevel, maxlevel, statedata_list, mesh_list, stat, equation, scheme_list, poly_proj_pos, poly_proj_list, check, iteration, time)

Routine to check if the physical values of a state are physically meaningful or not.

Arguments

TypeIntentOptionalAttributesName
integer, intent(in) :: minlevel
integer, intent(in) :: maxlevel
type(atl_statedata_type), intent(in) :: statedata_list(minlevel:maxlevel)
type(atl_cube_elem_type), intent(in) :: mesh_list(minlevel:maxlevel)
type(tem_status_type), intent(inout) :: stat

The current status bits from the treelm general configuration

type(atl_Equations_type), intent(in) :: equation
type(atl_scheme_type), intent(in) :: scheme_list(minlevel:maxlevel)
integer, intent(in) :: poly_proj_pos(minlevel:maxlevel)
type(ply_poly_project_type), intent(inout) :: poly_proj_list(:)
type(atl_physCheck_type), intent(in) :: check
integer, intent(in) :: iteration
type(atl_global_timestep_type), intent(inout) :: time