tem_ic_predefs_module Module

This module gathers the various predefined initial conditions



Derived Types

type, public ::  ic_gausspulse_type

This type contains datas to define gauss pulse

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: center(3)

Gauss pulse center

real(kind=rk), public :: halfwidth

half width of gauss pulse from center

real(kind=rk), public :: amplitude

height or magnitude of gauss pulse

real(kind=rk), public :: background

reference value. In case of density, it is reference density

real(kind=rk), public :: dx

spatial step size

real(kind=rk), public :: dt

time step size

type, public ::  ic_2dcrvp_type

This type contains datas to define 2d co-rotating vortex pair

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: center(3)

spinning center

real(kind=rk), public :: radius_rot

distance of vortex centers / 2

real(kind=rk), public :: radius_C

core radius = radius_rot/3

real(kind=rk), public :: circulation

circulation of vortices

real(kind=rk), public :: p0

reference pressure

real(kind=rk), public :: rho0

reference density

real(kind=rk), public :: kappa

adiabatic exponent

real(kind=rk), public :: cs

speed of sound

real(kind=rk), public :: Ma

rotating Mach number

real(kind=rk), public :: t

position in time

type(cutoff_type), public :: cutoff
logical, public :: pressGaussModel

Approximation of the pressure distribution inside the core radius with a gaussian pulse model

logical, public :: rankineModel

vortex core velocity model: rankine

real(kind=rk), public :: matchFactor

to match the gauss model to the pressure distribution Set to 2.2

type, public ::  ic_tgv_type

Components

Type Visibility Attributes Name Initial
real(kind=rk), public :: x0(3)

Origin points

real(kind=rk), public :: u0(2)

Ref velocity (X and Y)

real(kind=rk), public :: p0

Ref pressure

real(kind=rk), public :: tD

Rate of decay coefficient

real(kind=rk), public :: Re

Reynolds number

type, private ::  cutoff_type

cutoff radius definition

Components

Type Visibility Attributes Name Initial
logical, public :: active

cutoff is active?

real(kind=rk), public :: length

cutoff values

real(kind=rk), public :: r_min

cutoff start

real(kind=rk), public :: r_max

cutoff end

logical, public :: linear

linear behavior

logical, public :: quadratic

quadratic behavior


Functions

public function ic_gausspulse_for(me, coord, n) result(res)

This function defines gauss pulse

Read more…

Arguments

Type IntentOptional Attributes Name
type(ic_gausspulse_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public function ic_2dcrvpX_for(me, coord, n) result(res)

This function defines the y-velocity component of the spinning (= co-rotating) vortex pair Source: complex velocity potential of both vortices complex coordinates: z = x+i*y Gamma ... circulation

Read more…

Arguments

Type IntentOptional Attributes Name
type(ic_2dcrvp_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public function ic_2dcrvpY_for(me, coord, n) result(res)

This function defines the y-velocity component of the spinning (= co-rotating) vortex pair Source: complex velocity potential of both vortices complex coordinates: z = x+i*y Gamma ... circulation

Read more…

Arguments

Type IntentOptional Attributes Name
type(ic_2dcrvp_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public function ic_2dcrvpPressure_for(me, coord, n) result(pressure)

This function defines the density of the spinning (= co-rotating) vortex pair See the matlab file where the pressure is plot in the ase-testcases/ repo in musubi/crvp/matlab/crvp_velPress_plot.m

Read more…

Arguments

Type IntentOptional Attributes Name
type(ic_2dcrvp_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public pure function ic_tgv_pressure_for(me, coord, n) result(pressure)

Arguments

Type IntentOptional Attributes Name
type(ic_tgv_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public pure function ic_tgv_ux_for(me, coord, n) result(ux)

Arguments

Type IntentOptional Attributes Name
type(ic_tgv_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public pure function ic_tgv_uy_for(me, coord, n) result(uy)

Arguments

Type IntentOptional Attributes Name
type(ic_tgv_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public pure function ic_tgv_Sxx_for(me, coord, n) result(s)

Arguments

Type IntentOptional Attributes Name
type(ic_tgv_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public pure function ic_tgv_Syy_for(me, coord, n) result(s)

Arguments

Type IntentOptional Attributes Name
type(ic_tgv_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public pure function ic_tgv_Sxz_for(me, coord, n) result(s)

Arguments

Type IntentOptional Attributes Name
type(ic_tgv_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

public pure function ic_tgv_Syz_for(me, coord, n) result(s)

Arguments

Type IntentOptional Attributes Name
type(ic_tgv_type), intent(in) :: me

global gauss pulse data

real(kind=rk), intent(in) :: coord(n,3)

coordinate of an element

integer, intent(in) :: n

number of return values

Return Value real(kind=rk), (n)

return value which is sent to state variable

private function cutoff_factor(me, radius) result(cutoff_fac)

return the cutoff multiplication factor This routine returns the cutoff factor for a circle of size r_min. Outside r_min, the quantity is

Read more…

Arguments

Type IntentOptional Attributes Name
type(cutoff_type), intent(in) :: me

global gauss pulse data

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

coordinate of an element

Return Value real(kind=rk)

return value which is sent to state variable


Subroutines

public subroutine load_ic_gausspulse(conf, thandle, me)

load gauss pulse variables to set initial condition

Arguments

Type IntentOptional Attributes Name
type(flu_State) :: conf

lua state type

integer, intent(in) :: thandle

aotus parent handle

type(ic_gausspulse_type), intent(out) :: me

Global gauss pulse data type

public subroutine load_ic_2dcrvp(conf, thandle, me)

load crvp variables to set initial condition

Arguments

Type IntentOptional Attributes Name
type(flu_State) :: conf

lua state type

integer, intent(in) :: thandle

aotus parent handle

type(ic_2dcrvp_type), intent(out) :: me

Global gauss pulse data type

public subroutine load_ic_tgv(conf, thandle, me)

load gauss pulse variables to set initial condition

Arguments

Type IntentOptional Attributes Name
type(flu_State) :: conf

lua state type

integer, intent(in) :: thandle

aotus parent handle

type(ic_tgv_type), intent(out) :: me

TGV data type