Some generic handy check routines to check the properties of the flow field and the current run
Performance estimation, check of the total density, check for NaNs
Calculate the MLUPS or MFLUPS for the simulation
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel | level range |
||
integer, | intent(in) | :: | maxLevel | level range |
||
integer, | intent(in) | :: | scaleFactor | global parameter |
||
integer(kind=long_k), | intent(in) | :: | nElems(minLevel:maxLevel) | array of nElems levelwise |
||
integer, | intent(in) | :: | iter | number of iterations on maxLevel number of iteration on iLevel = iter / scaleFactor**(maxLevel-iLevel) |
||
real(kind=rk), | intent(in) | :: | time | time consumed for running iter iterations |
resulting mlups
Perform run-time checks if interval is active
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_scheme_type), | intent(in) | :: | scheme | |||
integer, | intent(in) | :: | minLevel | |||
integer, | intent(in) | :: | maxLevel | |||
type(tem_general_type), | intent(inout) | :: | general | |||
type(mus_abortCriteria_type), | intent(in) | :: | mus_aborts | |||
logical, | intent(in) | :: | initCheck | True for initial check before main time toop |
Check the total potential for poisson scheme
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_scheme_type), | intent(in) | :: | scheme | scheme type |
||
integer, | intent(in) | :: | minLevel | global scheme independent information |
||
integer, | intent(in) | :: | maxLevel | global scheme independent information |
||
type(tem_general_type), | intent(inout) | :: | general | |||
real(kind=rk), | intent(out), | optional | :: | total_potential |
Check the total density for a selected scheme and write to unit
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_scheme_type), | intent(in) | :: | scheme | scheme type |
||
integer, | intent(in) | :: | minLevel | global scheme independent information |
||
integer, | intent(in) | :: | maxLevel | global scheme independent information |
||
type(tem_general_type), | intent(inout) | :: | general | |||
real(kind=rk), | intent(out), | optional | :: | total_density |
This routine measures performance imbalance, MLUPS and dumps timings to disk
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | totalDens | Total density from check_density |
||
integer(kind=long_k), | intent(in) | :: | DomSize | Total number of elements in tree |
||
integer, | intent(in) | :: | minLevel | level range |
||
integer, | intent(in) | :: | maxLevel | level range |
||
integer, | intent(in) | :: | nElems(minLevel:maxLevel) | array of nElems levelwise |
||
integer, | intent(in) | :: | scaleFactor | global parameter |
||
type(tem_general_type), | intent(in) | :: | general | Contains proc, simControl, solveHead |
Check for the streaming layout.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | minLevel | |||
integer, | intent(in) | :: | maxLevel |
Write solver specific info to scratch file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_scheme_type), | intent(in) | :: | scheme | scheme type |
||
type(mus_param_type), | intent(in) | :: | params | Contains physical convertion info and scaling type |
||
integer, | intent(in) | :: | rank | Rank of the process either from global communicator or tracking output communicator |
||
integer, | intent(inout) | :: | outUnit | unit to output solver info in lua format |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=long_k), | intent(in) | :: | treeID(1:nElems) | |||
integer, | intent(in) | :: | nElems | |||
integer(kind=long_k), | intent(in) | :: | offset | |||
integer, | intent(in) | :: | myRank | |||
integer, | intent(in) | :: | iter |
Output the min and max time across all ranks, which are spent on each boundary condition.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nBCs | |||
character(len=labelLen), | intent(in) | :: | bc_labels(nBCs) | |||
integer, | intent(in) | :: | comm |
This routine dump compute and BC timing for all ranks rank nFluids tCompute nBCElems tBC tCPU tMainLoop
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_comm_env_type), | intent(in) | :: | proc | |||
integer, | intent(in) | :: | nFluids | |||
integer, | intent(in) | :: | nBCElems | |||
integer(kind=long_k), | intent(in) | :: | DomSize | |||
integer, | intent(in) | :: | iter | |||
type(tem_communication_type), | intent(in) | :: | send |
Check the maximum velocity whether it is above Ma>0.1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_scheme_type), | intent(in) | :: | scheme | scheme type |
||
integer, | intent(in) | :: | minLevel | global scheme independent information |
||
integer, | intent(in) | :: | maxLevel | global scheme independent information |
||
type(tem_general_type), | intent(inout) | :: | general | |||
type(mus_abortCriteria_type), | intent(in) | :: | mus_aborts |
Check the maximum velocity whether it is above Ma>0.1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_scheme_type), | intent(in) | :: | scheme | scheme type |
||
integer, | intent(in) | :: | minLevel | global scheme independent information |
||
integer, | intent(in) | :: | maxLevel | global scheme independent information |
||
type(tem_general_type), | intent(inout) | :: | general | |||
type(mus_abortCriteria_type), | intent(in) | :: | mus_aborts |
Performance results (MLUPs) are written to a file for statistical review The file-format is simple can be evaluated with gnuplot
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in) | :: | totalDens | |||
integer(kind=long_k), | intent(in) | :: | DomSize | |||
real(kind=rk), | intent(in) | :: | MLUPS | |||
real(kind=rk), | intent(in) | :: | MLUPS_kernel | |||
real(kind=rk), | intent(in) | :: | timerVal(:) | Max. timers of all process |
||
real(kind=rk), | intent(in) | :: | imbalance | |||
type(tem_general_type), | intent(in) | :: | general |