bc_primitive Module

Apply boundary condition at every iteration


Uses

  • module~~bc_primitive~~UsesGraph module~bc_primitive bc_primitive module~global_sst global_sst module~bc_primitive->module~global_sst module~ft_bc FT_bc module~bc_primitive->module~ft_bc module~copy_bc copy_bc module~bc_primitive->module~copy_bc module~wall_dist wall_dist module~bc_primitive->module~wall_dist module~vartypes vartypes module~bc_primitive->module~vartypes iso_fortran_env iso_fortran_env module~global_sst->iso_fortran_env module~ft_bc->module~copy_bc module~ft_bc->module~vartypes module~copy_bc->module~vartypes module~wall_dist->module~vartypes module~utils utils module~wall_dist->module~utils module~vartypes->iso_fortran_env

Used by

  • module~~bc_primitive~~UsedByGraph module~bc_primitive bc_primitive module~update update module~update->module~bc_primitive module~solver solver module~solver->module~update program~main main program~main->module~solver

Contents


Variables

TypeVisibility AttributesNameInitial
integer, private :: face_num
integer, private :: current_iter

Number of the face : 1:imin, 2:imax, 3:jmin, 4:jmax, 5:kmin, 6:kmax

integer, private :: imx

Number of the face : 1:imin, 2:imax, 3:jmin, 4:jmax, 5:kmin, 6:kmax

integer, private :: jmx

Number of the face : 1:imin, 2:imax, 3:jmin, 4:jmax, 5:kmin, 6:kmax

integer, private :: kmx

Number of the face : 1:imin, 2:imax, 3:jmin, 4:jmax, 5:kmin, 6:kmax

integer, private :: n_var

Number of the face : 1:imin, 2:imax, 3:jmin, 4:jmax, 5:kmin, 6:kmax

character(len=32), private :: turbulence
character(len=32), private :: transition
real(kind=wp), private :: gm
real(kind=wp), private :: R_gas
real(kind=wp), private :: mu_ref
real(kind=wp), private :: T_ref
real(kind=wp), private :: Sutherland_temp
real(kind=wp), private :: x_speed_inf
real(kind=wp), private :: y_speed_inf
real(kind=wp), private :: z_speed_inf
real(kind=wp), private :: density_inf
real(kind=wp), private :: pressure_inf
real(kind=wp), private :: tk_inf
real(kind=wp), private :: tw_inf
real(kind=wp), private :: te_inf
real(kind=wp), private :: tv_inf
real(kind=wp), private :: tgm_inf
real(kind=wp), private :: tkl_inf
real(kind=wp), private, dimension(:, :, :, :), pointer:: qp
real(kind=wp), private, dimension(:, :, :), pointer:: density

Rho pointer, point to slice of qp (:,:,:,1)

real(kind=wp), private, dimension(:, :, :), pointer:: x_speed

U pointer, point to slice of qp (:,:,:,2)

real(kind=wp), private, dimension(:, :, :), pointer:: y_speed

V pointer, point to slice of qp (:,:,:,3)

real(kind=wp), private, dimension(:, :, :), pointer:: z_speed

W pointer, point to slice of qp (:,:,:,4)

real(kind=wp), private, dimension(:, :, :), pointer:: pressure

P pointer, point to slice of qp (:,:,:,5)

real(kind=wp), private, dimension(:, :, :), pointer:: tk

TKE/mass

real(kind=wp), private, dimension(:, :, :), pointer:: tw

Omega

real(kind=wp), private, dimension(:, :, :), pointer:: te

Dissipation

real(kind=wp), private, dimension(:, :, :), pointer:: tv

SA visocity

real(kind=wp), private, dimension(:, :, :), pointer:: tkl

KL K-KL method

real(kind=wp), private, dimension(:, :, :), pointer:: tgm

Intermittency of LCTM2015


Subroutines

public subroutine populate_ghost_primitive(state, Ifaces, Jfaces, Kfaces, control, scheme, flow, bc, dims)

Populate the state variables in the ghost cell with particular value based on the boundary conditio being applied at that face

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(inout), dimension(-2:dims%imx+2, -2:dims%jmx+2, -2:dims%kmx+2, 1:dims%n_var), target:: state

state variables

type(facetype), intent(in), dimension(-2:dims%imx+3,-2:dims%jmx+2,-2:dims%kmx+2):: Ifaces

Input varaible which stores I faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+3,-2:dims%kmx+2):: Jfaces

Input varaible which stores J faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+3):: Kfaces

Input varaible which stores K faces' area and unit normal

type(controltype), intent(in) :: control
type(schemetype), intent(in) :: scheme
type(flowtype), intent(in) :: flow
type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine supersonic_inlet(face, bc)

Supersonic inlet boundary condition All the values of state variables are fixed

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face
type(boundarytype), intent(in) :: bc

Name of the face at which boundary condition is called

private subroutine supersonic_outlet(face, bc, dims)

Supersonic outlet boundary condition. All the values of state variables are copied from inside the domain

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face

Name of the face at which boundary condition is called

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine subsonic_inlet(face, bc, dims)

Subsonic inlet boundary condition. All the state variables's value expect pressure is fixed and pressure is copied from inside the domain

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face

Name of the face at which boundary condition is called

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine subsonic_outlet(face, bc, dims)

Subsonic outlet boundary condition. All the state variables's value expect pressure is copied from the inside of the domain and pressure is fixed

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face

Name of the face at which boundary condition is called

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine wall(face, bc, dims)

Adiabatic/Isothermal wall boundary condition

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face
type(boundarytype), intent(in) :: bc

Name of the face at which boundary condition is called

type(extent), intent(in) :: dims

private subroutine slip_wall(face, Ifaces, Jfaces, Kfaces, bc, dims)

Slip wall boundary condition. Maintain flow tangency

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face
type(facetype), intent(in), dimension(-2:dims%imx+3,-2:dims%jmx+2,-2:dims%kmx+2):: Ifaces

Input varaible which stores I faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+3,-2:dims%kmx+2):: Jfaces

Input varaible which stores J faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+3):: Kfaces

Input varaible which stores K faces' area and unit normal Name of the face at which boundary condition is called

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine pole(face, bc, dims)

Boundary condition for the block face with zero area; turning into a pole

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face

Name of the face at which boundary condition is called

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine fix(var, fix_val, face)

Generalized subroutine to fix particular value at particular face

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(out), dimension(-2:imx+2, -2:jmx+2, -2:kmx+2):: var

Variable of which values are being fixed in the ghost cell

real(kind=wp), intent(in), dimension(1:6):: fix_val

Amount of value that need to be fixed.

character(len=*), intent(in) :: face

Name of the face at which boundary condition is called

private subroutine no_slip(face, bc, dims)

No-slip wall boundary condition. All the component of velocity throught face is zero

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face

Name of the face at which boundary condition is called

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine set_omega_at_wall(face)

Set value of turbulence variable: omega (turbulenct dissipation rate). Value fixed is accourding to the SST turbulence model

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face

private subroutine far_field(face, Ifaces, Jfaces, Kfaces, bc, dims)

Far-field Riemann boundary condition

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face
type(facetype), intent(in), dimension(-2:dims%imx+3,-2:dims%jmx+2,-2:dims%kmx+2):: Ifaces

Input varaible which stores I faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+3,-2:dims%kmx+2):: Jfaces

Input varaible which stores J faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+3):: Kfaces

Input varaible which stores K faces' area and unit normal

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine total_pressure(face, Ifaces, Jfaces, Kfaces, bc, dims)

Total Pressure Riemann boundary condition

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face
type(facetype), intent(in), dimension(-2:dims%imx+3,-2:dims%jmx+2,-2:dims%kmx+2):: Ifaces

Input varaible which stores I faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+3,-2:dims%kmx+2):: Jfaces

Input varaible which stores J faces' area and unit normal

type(facetype), intent(in), dimension(-2:dims%imx+2,-2:dims%jmx+2,-2:dims%kmx+3):: Kfaces

Input varaible which stores K faces' area and unit normal

type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine temp_based_density(temperature, face, bc, dims)

Specify the density in the ghost cell based on the temperature on the wall. Isothermal or adiabatic

Arguments

Type IntentOptional AttributesName
real(kind=wp), intent(in), dimension(1:6):: temperature
character(len=*), intent(in) :: face
type(boundarytype), intent(in) :: bc
type(extent), intent(in) :: dims

private subroutine periodic_bc(face)

Single block periodic boundary condition. Not to be used for multiblock boundary condition

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: face