Module: Base
Contents
Module: Base#
Simulation system size, and the size setup subroutine.
- Name
mod_mupro_base
- Depends on
None
- Defined variables
idp, rdp, cdp
- Defined types
- Defined subroutines
mupro_size_setup, mupro_mpi_setup, mupro_toml_read_file, mupro_toml_get_value_evaluate
The module is to set commonly used double precision variable kind.
Defined variables#
use, intrinsic :: ISO_Fortran_env
integer, parameter::idp = int64
integer, parameter::rdp = real64
integer, parameter::cdp = real64
Defined Types#
type_mupro_SizeContext#
Variable |
Type |
Meaning |
---|---|---|
nx |
int32 |
Number of simulation grids along x direction |
ny |
int32 |
Number of simulation grids along y direction |
nz |
int32 |
Number of simulation grids along z direction |
ns |
int32 |
Number of simulation grids in the substrate for thin film setup |
nf |
int32 |
Number of simulation grids in the film for thin film setup |
lx |
real64 |
Simulation size along x in real dimension (m) |
ly |
real64 |
Simulation size along y in real dimension (m) |
lz |
real64 |
Simulation size along z in real dimension (m) |
Defined Subroutines#
mupro_size_setup(context)#
Set the simulation size for the whole simulation, the variables will be used implicitly later in almost all the modules and subroutines.
Important
This is the base for all other modules. You must call the mupro_size_setup
subroutine before you can use any other functionalities provided by the SDK.
Argument |
Type(Intent) |
Meaning |
---|---|---|
context |
The simulation size you want to have for the solvers |
mupro_mpi_setup(rank, process)#
Initialize the MPI, this is necessary for all simulation using our SDK.
Important
This is the base for all other modules. You must call the mupro_mpi_setup
subroutine before you can use any other functionalities provided by the SDK. There is no particular sequence requested between mupro_mpi_setup and mupro_size_setup.
Argument |
Type(Intent) |
Meaning |
---|---|---|
rank |
integer(out) |
The MPI rank for current core, starting from 0 |
process |
integer(out) |
The total number of processes(cores) |
mupro_toml_read_file(file, table)#
Read a toml file into toml_table type (from the toml-f package).
Important
You must use this subroutine before you and use the get_value
and mupro_toml_get_value_evaluate
subroutine to read parameters from the toml file.
Argument |
Type(Intent) |
Meaning |
---|---|---|
file |
character(len=*)(in) |
The toml file name |
table |
toml_table(out) |
The toml_table to be used later in the get_value subroutine |
mupro_toml_get_value_evaluate(table, name, out)#
This subroutine combine the funtionalities of get_value
from toml-f package, which can read a string from the toml file, and the exprtk::expression
, exprtk::parser
functions which evaluate string math expression into numbers.
Argument |
Type(Intent) |
Meaning |
---|---|---|
table |
toml_table(in) |
The toml_table obtained from mupro_toml_read_file |
name |
character(len=*)(in) |
The key of the to be parsed toml variable |
out |
real(kind=rdp)(out) |
The exprtk evaluated number |