vartypes Module

Derived data types


Uses

  • module~~vartypes~~UsesGraph module~vartypes vartypes iso_fortran_env iso_fortran_env module~vartypes->iso_fortran_env

Used by

  • module~~vartypes~~UsedByGraph module~vartypes vartypes module~mapping mapping module~mapping->module~vartypes module~wall_dist wall_dist module~wall_dist->module~vartypes module~check_output_control check_output_control module~check_output_control->module~vartypes module~write_output_vtk write_output_vtk module~write_output_vtk->module~vartypes module~write_output_vtk->module~wall_dist module~viscosity viscosity module~write_output_vtk->module~viscosity module~gradients gradients module~write_output_vtk->module~gradients module~viscosity->module~vartypes module~viscosity->module~wall_dist module~copy_bc copy_bc module~viscosity->module~copy_bc module~viscosity->module~gradients module~weno weno module~weno->module~vartypes module~wall wall module~wall->module~vartypes module~write_output write_output module~write_output->module~vartypes module~write_output->module~write_output_vtk module~write_output_tec_node write_output_tec_node module~write_output->module~write_output_tec_node module~write_output_tec write_output_tec module~write_output->module~write_output_tec module~cc CC module~cc->module~vartypes module~cc->module~wall_dist module~read_output_vtk read_output_vtk module~read_output_vtk->module~vartypes module~bc bc module~bc->module~vartypes module~read_bc read_bc module~bc->module~read_bc module~weno_nm weno_NM module~weno_nm->module~vartypes module~geometry geometry module~geometry->module~vartypes module~read read module~read->module~vartypes module~van_leer van_leer module~van_leer->module~vartypes module~scheme scheme module~scheme->module~vartypes module~scheme->module~van_leer module~ausmp ausmP module~scheme->module~ausmp module~ausmup ausmUP module~scheme->module~ausmup module~slau slau module~scheme->module~slau module~ausm ausm module~scheme->module~ausm module~face_interpolant face_interpolant module~scheme->module~face_interpolant module~ldfss0 ldfss0 module~scheme->module~ldfss0 module~read_output_tec read_output_tec module~read_output_tec->module~vartypes module~source source module~source->module~vartypes module~source->module~wall_dist module~source->module~viscosity module~source->module~cc module~source->module~gradients module~bc_primitive bc_primitive module~bc_primitive->module~vartypes module~bc_primitive->module~wall_dist module~bc_primitive->module~copy_bc module~ft_bc FT_bc module~bc_primitive->module~ft_bc module~copy_bc->module~vartypes module~resnorm resnorm module~resnorm->module~vartypes module~write_output_tec_node->module~vartypes module~write_output_tec_node->module~wall_dist module~write_output_tec_node->module~viscosity module~write_output_tec_node->module~gradients module~update update module~update->module~vartypes module~update->module~wall_dist module~update->module~viscosity module~update->module~scheme module~update->module~source module~update->module~bc_primitive module~interface1 interface1 module~update->module~interface1 module~time time module~update->module~time module~viscous viscous module~update->module~viscous module~plusgs plusgs module~update->module~plusgs module~update->module~gradients module~boundary_state_reconstruction boundary_state_reconstruction module~update->module~boundary_state_reconstruction module~lusgs lusgs module~update->module~lusgs module~update->module~face_interpolant module~interface1->module~vartypes module~interface1->module~mapping module~time->module~vartypes module~time->module~viscosity module~time->module~read module~time->module~face_interpolant module~convergence convergence module~convergence->module~vartypes module~convergence->module~resnorm module~viscous->module~vartypes module~viscous->module~viscosity module~viscous->module~gradients module~state state module~state->module~vartypes module~state->module~check_output_control module~read_output read_output module~state->module~read_output module~ausmp->module~vartypes module~ausmp->module~face_interpolant module~ppm ppm module~ppm->module~vartypes module~layout layout module~layout->module~vartypes module~ft_bc->module~vartypes module~ft_bc->module~copy_bc module~plusgs->module~vartypes module~plusgs->module~wall_dist module~plusgs->module~viscosity module~plusgs->module~gradients module~write_output_tec->module~vartypes module~write_output_tec->module~wall_dist module~write_output_tec->module~viscosity module~write_output_tec->module~gradients module~solver solver module~solver->module~vartypes module~solver->module~wall_dist module~solver->module~viscosity module~solver->module~wall module~solver->module~cc module~solver->module~bc module~solver->module~geometry module~solver->module~read module~solver->module~scheme module~solver->module~resnorm module~solver->module~update module~solver->module~interface1 module~solver->module~time module~solver->module~viscous module~solver->module~state module~solver->module~layout module~solver->module~gradients module~dump_solution dump_solution module~solver->module~dump_solution module~grid grid module~solver->module~grid module~gradients->module~vartypes module~boundary_state_reconstruction->module~vartypes module~boundary_state_reconstruction->module~face_interpolant module~ausmup->module~vartypes module~slau->module~vartypes module~dump_solution->module~vartypes module~dump_solution->module~write_output module~dump_solution->module~layout module~read_bc->module~vartypes module~ausm->module~vartypes module~grid->module~vartypes module~grid->module~mapping module~muscl muscl module~muscl->module~vartypes module~lusgs->module~vartypes module~lusgs->module~wall_dist module~lusgs->module~viscosity module~lusgs->module~gradients module~face_interpolant->module~vartypes module~face_interpolant->module~weno module~face_interpolant->module~weno_nm module~face_interpolant->module~ppm module~face_interpolant->module~muscl module~ldfss0->module~vartypes module~read_output->module~vartypes module~read_output->module~check_output_control module~read_output->module~read_output_vtk module~read_output->module~read_output_tec program~main main program~main->module~convergence program~main->module~solver

Contents


Variables

TypeVisibility AttributesNameInitial
integer, public :: process_id =0

Id no. of each processor assinged by MPICH library

integer, public, parameter:: FILE_NAME_LENGTH =64

Length of string used for defining any filename

integer, public, parameter:: STRING_BUFFER_LENGTH =128

User to define a string of medium length

integer, public, parameter:: FORMAT_LENGTH =16

Length of string used for file format: tecplot or vtk


Derived Types

type, public :: nodetype

Components

TypeVisibility AttributesNameInitial
real(kind=wp), public :: x
real(kind=wp), public :: y
real(kind=wp), public :: z

type, public :: extent

Components

TypeVisibility AttributesNameInitial
integer, public :: imx
integer, public :: jmx
integer, public :: kmx
integer, public :: n_var

type, public :: celltype

Components

TypeVisibility AttributesNameInitial
real(kind=wp), public :: volume

Store cell volume

real(kind=wp), public :: centerx
real(kind=wp), public :: centery
real(kind=wp), public :: centerz

Store Cell-center location

type, public :: facetype

Components

TypeVisibility AttributesNameInitial
real(kind=wp), public :: A

Store magnitude of face area vector of direction faces

real(kind=wp), public :: nx
real(kind=wp), public :: ny
real(kind=wp), public :: nz

Store unit face normal vector for all faces

type, public :: filetype

Components

TypeVisibility AttributesNameInitial
integer, public :: CONFIG_FILE_UNIT =16

Handler unit for config.md file

integer, public :: GRID_FILE_UNIT =17

Handler for input Gridfile; eg: grid_00.txt

integer, public :: BOUNDARY_CONDITIONS_FILE_UNIT =18

Handler for Boundary condition file; eg: bc_00.md

Read more…
integer, public :: IN_FILE_UNIT =19

Handler for restart file for block: eg: time_drectories/0001/process_00.dat

integer, public :: OUT_FILE_UNIT =20

Handler for output file for each block

integer, public :: RESNORM_FILE_UNIT =21

Handler for Residual output file. filename: time_directories/aux/resnorm

integer, public :: LAYOUT_FILE_UNIT =31

Handler for input multi-block layout and boundary condition file.

integer, public :: NODESURF_FILE_UNIT =32

Handler for storing node point on the wall

Read more…
integer, public :: RES_CONTROL_FILE_UNIT =34

Handler for residual control file. filename: system/res_control.md

Read more…
integer, public :: CONTROL_FILE_UNIT =36

Handler for input system/control.md file

integer, public :: SCHEME_FILE_UNIT =37

Handler for input system/fvscheme.md file

integer, public :: FLOW_FILE_UNIT =38

Handler for input system/flow.md file

integer, public :: RESTART_FILE_UNIT =39

Handler for Restart file in Restart folder. eg: time_directories/0001/Restart/process_00

integer, public :: OUTIN_FILE_UNIT =40

Handler for file which controls what variables will be read or stored. system/output_control.md

integer, public :: MAP_FILE_UNIT =41

Handler for input multi-block mapping file with index and direction.

integer, public :: PERIODIC_FILE_UNIT =42

Handler for input periodic boundary condition file

integer, public :: STOP_FILE_UNIT =43

Handler for Stop file

character(len=FILE_NAME_LENGTH), public :: control_file ="system/control.md"

FILENAME string: Control file

character(len=FILE_NAME_LENGTH), public :: scheme_file ="system/fvscheme.md"

FILENAME string: Scheme file

character(len=FILE_NAME_LENGTH), public :: flow_file ="system/flow.md"

FILENAME string: FLow condition file

character(len=FILE_NAME_LENGTH), public :: outin_file ="system/output_control.md"

FILENAME string: Ouput/Input variable control file

character(len=FILE_NAME_LENGTH), public :: layout_file ='system/mesh/layout/layout.md'

FILENAME string: Multiple layout/boundary condition file

character(len=FILE_NAME_LENGTH), public :: nodefile_temp ="scratch.dat"

FILENAME string: Temperory file for nodesurface points

character(len=FILE_NAME_LENGTH), public :: surface_node_points ='time_directories/aux/surfnode.dat'

FILENAME string: Wall surface node points

character(len=FILE_NAME_LENGTH), public :: res_control_file ='system/res_control.md'

FILENAME string: Residual write control file

character(len=FILE_NAME_LENGTH), public :: resnorm_file ='time_directories/aux/resnorm'

FILENAME string: Residual output file

character(len=FILE_NAME_LENGTH), public :: stop_file ='system/stopfile'

FILENAME string: Halt/stop file

character(len=FILE_NAME_LENGTH), public :: mapfile ='system/mesh/layout/mapping.txt'

FILENAME string: Detailed multiblock mapping file with indicies and direction information at interface

character(len=FILE_NAME_LENGTH), public :: periodicfile ='system/mesh/layout/periodic.txt'

FILENAME string: Multiblock periodic boundary condition detials

character(len=FILE_NAME_LENGTH), public :: gridfile

FILENAME string: Grid file

character(len=FILE_NAME_LENGTH), public :: bcfile

FILENAME string: single block boundary condition detials

character(len=FILE_NAME_LENGTH), public :: outfile

FILENAME string: single block solution output file

character(len=FILE_NAME_LENGTH), public :: infile

FILENAME string: single block solution input file

character(len=FILE_NAME_LENGTH), public :: restartfile

FILENAME string: single block restart file

type, public :: controltype

Components

TypeVisibility AttributesNameInitial
real(kind=wp), public :: CFL =1.0

Courant–Friedrichs–Lewy (CFL) (Read from input)

integer, public :: start_from =0

Number of the folder (in time_directories) to load stored state from to restart computation

integer, public :: min_iter =1

Minimum iteration value, starting iteration value

integer, public :: max_iters =1

Maximum iteration value, stop after these many iteration

integer, public :: checkpoint_iter =0

Write interval for output file. Number of iteration after which solver will dump/store a state in a folder in time_directories

integer, public :: checkpoint_iter_count =0

Counter of folder number to write in time_directories/

integer, public :: current_iter =0

Current iteration number

integer, public :: res_write_interval =10

Write resnorm after every "res_write_interval" iteration

integer, public :: purge_write =1

Remove unwanted folder. If Purge_write=2, latest two folder in time_direcotires are kept and 0=no purge

integer, public :: last_iter =0

Last iteration that is stored in the restart file

integer, public :: write_percision =6

Number of place after decimal. Only used for resnorm file

character(len=FORMAT_LENGTH), public :: write_data_format ='ASCII'

write data type. Either ASCII or BINARY

character(len=FORMAT_LENGTH), public :: write_file_format ='tecplot'

Write file type. Either vtk or tecplot

character(len=FORMAT_LENGTH), public :: read_data_format ='ASCII'

Read data type in file. Either ASCII or BINARY

character(len=FORMAT_LENGTH), public :: read_file_format ='tecplot'

Read file type. Either vtk or tecplot

real(kind=wp), public :: tolerance =1e-14

Minimum value of resnorm after which simulation stop

character(len=STRING_BUFFER_LENGTH), public :: tolerance_type ="abs"

Type of tolerance to check:absolute or relative

integer, public :: DEBUG_LEVEL =1

Debug level is an input from the control file. 5-> important calls only, and, 1-> all the calls

character(len=STRING_BUFFER_LENGTH), public :: previous_flow_type ="none"

Type of flow:inviscid, laminar, etc, stored in the load file

integer, public :: n_var =5
character(len=STRING_BUFFER_LENGTH), public, dimension(:), allocatable:: r_list

Read variable list

character(len=STRING_BUFFER_LENGTH), public, dimension(:), allocatable:: w_list

Write variable list

integer, public :: r_count =0

Number of variable to read from the restart file

integer, public :: w_count =0

Number of variable to write in the output file

character(len=STRING_BUFFER_LENGTH), public, dimension(:), allocatable:: Res_list

Write residual variable list

integer, public :: Res_count

No of residual variable to save

integer, public :: total_process =1

Total number of process to be used for computation

integer, public :: process_id =0

Id no. of each processor assinged by MPICH library

integer, public :: want_to_stop =0

0: continue the solver; 1=Stop the solver

logical, public :: Halt =.FALSE.

Logical value used to stop the solver in main program file.

real(kind=wp), public, dimension(:), allocatable:: previous_res

starting resnrom of previous run

type, public :: schemetype

Components

TypeVisibility AttributesNameInitial
character(len=STRING_BUFFER_LENGTH), public :: scheme_name ='ausm'

Flux Scheme to use: ausm, ldfss0, vanleer, ausmup, ausmp, slau

character(len=STRING_BUFFER_LENGTH), public :: interpolant ='muscl'

Face state reconstruction method to user: muscl, ppm, none, weno, and wenoNM

real(kind=wp), public :: global_time_step =1e-5

Value of global time step to march the solution with

character, public :: time_stepping_method ='l'

Either local time stepping or global time stepping

character(len=STRING_BUFFER_LENGTH), public :: time_step_accuracy ='implicit'

Type of time_integration scheme: RK4, none(firt order explicit) implicit,

integer, public :: ilimiter_switch =1

Turn on/off application of limiter for MUSCL (higer order face state reconstiion) for I direction faces.

integer, public :: jlimiter_switch =1

Turn on/off application of limiter for MUSCL (higer order face state reconstiion) for J direction faces.

integer, public :: klimiter_switch =1

Turn on/off application of limiter for MUSCL (higer order face state reconstiion) for K direction faces.

integer, public :: itlimiter_switch =1

Turn on/off application of limiter for MUSCL (higer order face turbulent variable state reconstiion) for I direction faces.

integer, public :: jtlimiter_switch =1

Turn on/off application of limiter for MUSCL (higer order face turbulent variable state reconstiion) for J direction faces.

integer, public :: ktlimiter_switch =1

Turn on/off application of limiter for MUSCL (higer order face turbulent variable state reconstiion) for K direction faces.

integer, public :: iPB_switch =0

Turn on/off application of pressure based switching for higher order methods for I direction faces.

integer, public :: jPB_switch =0

Turn on/off application of pressure based switching for higher order methods for J direction faces.

integer, public :: kPB_switch =0

Turn on/off application of pressure based switching for higher order methods for K direction faces.

character(len=8), public :: turbulence ='none'

Store Turbulence model name

character(len=8), public :: transition ='none'

Store Transition model name

integer, public :: accur =1

Switch for higher order boundary condition

type, public :: flowtype

Components

TypeVisibility AttributesNameInitial
real(kind=wp), public :: density_inf =1.2

Read freestream Density from control file

real(kind=wp), public :: x_speed_inf =100.0

Read freestream U from control file

real(kind=wp), public :: y_speed_inf =0.0

Read freestream V from control file

real(kind=wp), public :: z_speed_inf =0.0

Read freestream W from control file

real(kind=wp), public :: pressure_inf =101325

Read freestream Pressure from control file

real(kind=wp), public :: tk_inf =0.0

Read freestream turbulent kinetic energy rate from control file

real(kind=wp), public :: tw_inf =0.0

Read freestream turbulent dissipation rate from control file

real(kind=wp), public :: te_inf =0.0

Read freestream turbulent dissipation from control file

real(kind=wp), public :: tv_inf =0.0

Read freestream turbulent viscosity(SA) from control file

real(kind=wp), public :: tkl_inf =0.0

Read freestream kL variable from control file

real(kind=wp), public :: tu_inf =1.0

Read freestream turbulence intensity (percentage) from control file

real(kind=wp), public :: tgm_inf =1.0

Read freestream turbulence intermittency from control file

real(kind=wp), public :: vel_mag =100.0

Calulated freestream Velocity Magnitude from control file

real(kind=wp), public :: MInf =0.0

Calulated freestream Mach number

real(kind=wp), public :: Reynolds_number =0.0

Calculated free_stream Reynolds_number

real(kind=wp), public :: mu_ratio_inf =1.0

Read freestream turbulent viscosity to molecular viscosity ratio

real(kind=wp), public :: Turb_intensity_inf =0.01

Calculate free_stream turbulence intensity

real(kind=wp), public :: gm =1.4

Gamma commonly 1.4

real(kind=wp), public :: R_gas =287

Univarsal gas constant

real(kind=wp), public :: mu_ref =0.0

Molecular viscoity reference

character(len=FILE_NAME_LENGTH), public :: mu_variation ="constant"

Type of viscosity variaiton: Sutherland or constant

real(kind=wp), public :: T_ref =300

Reference Temperature of flow for viscosity calculation

real(kind=wp), public :: Sutherland_temp =110

Sutherland temperature for viscosity calculation

real(kind=wp), public :: Pr =0.7

prandtl number

real(kind=wp), public :: tPr =0.9

turbulent Prandtl number

type, public :: boundarytype

Components

TypeVisibility AttributesNameInitial
integer, public :: imin_id

Boundary condition number/ID at imin for particulat processor

integer, public :: imax_id

Boundary condition number/ID at imax for particulat processor

integer, public :: jmin_id

Boundary condition number/ID at jmin for particulat processor

integer, public :: jmax_id

Boundary condition number/ID at jmax for particulat processor

integer, public :: kmin_id

Boundary condition number/ID at kmin for particulat processor

integer, public :: kmax_id

Boundary condition number/ID at kmax for particulat processor

character(len=4), public, dimension(6):: face_names

Store name of all six boundary faces

integer, public, dimension(6):: id

Store the boundary condition ID of all six faces

real(kind=wp), public :: c1

First coefficient user for higher order boundary condition

real(kind=wp), public :: c2

Second coefficient user for higher order boundary condition

real(kind=wp), public :: c3

Third coefficient user for higher order boundary condition

real(kind=wp), public, dimension(6):: fixed_density =0.

Density value to fix at particular boundary

real(kind=wp), public, dimension(6):: fixed_pressure =0.

Pressure value to fix at particular boundary

real(kind=wp), public, dimension(6):: fixed_x_speed =0.

X component of velocity to fix at particular boundary condition

real(kind=wp), public, dimension(6):: fixed_y_speed =0.

Y component of velocity to fix at particular boundary condition

real(kind=wp), public, dimension(6):: fixed_z_speed =0.

Z component of velocity to fix at particular boundary condition

real(kind=wp), public, dimension(6):: fixed_tk =0.

Turbulent kinetic energy value to fix at particular boundary condition

real(kind=wp), public, dimension(6):: fixed_tw =0.

Turbulent kinetic energy dissiaption rate value to fix at particular boundary condition(k-omega and SST model)

real(kind=wp), public, dimension(6):: fixed_te =0.

Turbulent kinetic energy dissiaption value to fix at particular boundary condition (K-eplision model)

real(kind=wp), public, dimension(6):: fixed_tv =0.

Turbulent viscosity varialble value to fix at particular boundary condition (for SA turbulence model)

real(kind=wp), public, dimension(6):: fixed_tkl =0.

(Turbulent kinetic energy x length) varialble value to fix at particular boundary condition (for k-kL turbulence model)

real(kind=wp), public, dimension(6):: fixed_tgm =0.

Fixed intermittency value to apply at particular boundary condition (for SST2003-gamma transition model)

real(kind=wp), public, dimension(6):: fixed_wall_temperature =0.

Fixed wall temperature value to apply at isothermal wall boundary condition.

real(kind=wp), public, dimension(6):: fixed_Tpressure =0.

Fixed Total Pressure value to apply at particular boundary condition

real(kind=wp), public, dimension(6):: fixed_Ttemperature =0.

Fixed Total Temperature value to apply at particular boundary condition

integer, public, dimension(6):: ilo

Store the lower and upper bound of the indecies of I loop for the interface mapping

integer, public, dimension(6):: ihi

Store the lower and upper bound of the indecies of I loop for the interface mapping

integer, public, dimension(6):: jlo

Store the lower and upper bound of the indecies of J loop for the interface mapping

integer, public, dimension(6):: jhi

Store the lower and upper bound of the indecies of J loop for the interface mapping

integer, public, dimension(6):: klo

Store the lower and upper bound of the indecies of K loop for the interface mapping

integer, public, dimension(6):: khi

Store the lower and upper bound of the indecies of K loop for the interface mapping

integer, public, dimension(6):: dir_switch =0

Switch for each boundary face. Activated only if ( for eg I-direction in the mapping is mapped with J-direction)

integer, public, dimension(6):: otherface

Store the face number with which the current interface is connected.

integer, public, dimension(:), allocatable:: make_F_flux_zero

Store zero to boundary face, which has wall ID, to make F flux zero

integer, public, dimension(:), allocatable:: make_G_flux_zero

Store zero to boundary face, which has wall ID, to make G flux zero

integer, public, dimension(:), allocatable:: make_H_flux_zero

Store zero to boundary face, which has wall ID, to make H flux zero

integer, public, dimension(6):: PbcId =-1

Block ID for Periodic boundary condition