Derived data types
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=wp), | public | :: | x | ||||
real(kind=wp), | public | :: | y | ||||
real(kind=wp), | public | :: | z |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | imx | ||||
integer, | public | :: | jmx | ||||
integer, | public | :: | kmx | ||||
integer, | public | :: | n_var |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 |
|
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 |
|
integer, | public | :: | RES_CONTROL_FILE_UNIT | = | 34 | Handler for residual control file. filename: system/res_control.md |
|
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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
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 |