leapEulerian Module

Module of abstract objets defining Eulerian (field) data structure


Uses

  • module~~leapeulerian~~UsesGraph module~leapeulerian leapEulerian module~leapblock leapBlock module~leapeulerian->module~leapblock module~leapio leapIO module~leapeulerian->module~leapio module~leapio_mpi leapIO_mpi module~leapeulerian->module~leapio_mpi module~leapkinds leapKinds module~leapeulerian->module~leapkinds module~leapparallel leapParallel module~leapeulerian->module~leapparallel module~leapparser leapParser module~leapeulerian->module~leapparser module~leaputils leapUtils module~leapeulerian->module~leaputils mpi_f08 mpi_f08 module~leapeulerian->mpi_f08 module~leapblock->module~leapkinds module~leapblock->module~leapparallel module~leapblock->mpi_f08 module~leapio->module~leapio_mpi module~leapio_h5hut leapIO_h5hut module~leapio->module~leapio_h5hut module~leapio_hdf5 leapIO_hdf5 module~leapio->module~leapio_hdf5 module~leapio_silo leapIO_silo module~leapio->module~leapio_silo module~leapio_mpi->module~leapblock module~leapio_mpi->module~leapkinds module~leapio_mpi->module~leapparallel module~leapio_mpi->mpi_f08 iso_fortran_env iso_fortran_env module~leapkinds->iso_fortran_env module~leapparallel->module~leapkinds module~leapparallel->module~leapparser module~leapparallel->mpi_f08 module~leapparser->module~leapkinds module~leapcli leapCli module~leapparser->module~leapcli module~leaputils->module~leapkinds module~leaputils->mpi_f08 module~leapcli->module~leapkinds module~leapio_h5hut->module~leapkinds module~leapio_h5hut->module~leapparallel h5hut h5hut module~leapio_h5hut->h5hut module~leapio_hdf5->module~leapkinds module~leapio_hdf5->module~leapparallel module~leapio_hdf5->module~leaputils hdf5 hdf5 module~leapio_hdf5->hdf5 module~leapio_silo->module~leapblock module~leapio_silo->module~leapkinds module~leapio_silo->module~leapparallel module~leapio_silo->module~leaputils module~leapio_silo->mpi_f08

Used by

  • module~~leapeulerian~~UsedByGraph module~leapeulerian leapEulerian module~cdifs cdifs module~cdifs->module~leapeulerian module~cdifs_cases cdifs_cases module~cdifs->module~cdifs_cases module~leapbc leapBC module~cdifs->module~leapbc module~leapdiffop leapDiffOp module~cdifs->module~leapdiffop module~leaphypre leapHypre module~cdifs->module~leaphypre module~particles_resolved particles_resolved module~cdifs->module~particles_resolved module~immersed_boundaries immersed_boundaries module~cdifs->module~immersed_boundaries module~cdifs_cases->module~leapeulerian module~grans grans module~grans->module~leapeulerian module~grans_cases grans_cases module~grans->module~grans_cases module~grans->module~leaphypre module~particles_point particles_point module~grans->module~particles_point module~grans->module~particles_resolved module~grans->module~immersed_boundaries module~grans_cases->module~leapeulerian module~grans_cases->module~particles_point module~grans_cases->module~particles_resolved module~grans_cases->module~immersed_boundaries module~immersed_boundaries_markers immersed_boundaries_markers module~immersed_boundaries_markers->module~leapeulerian module~immersed_boundaries_markers->module~leapdiffop module~immersed_boundaries_markers->module~leaphypre module~immersed_boundaries_solids immersed_boundaries_solids module~immersed_boundaries_solids->module~leapeulerian module~immersed_boundaries_solids->module~immersed_boundaries_markers module~leapbc->module~leapeulerian module~leapdiffop->module~leapeulerian module~leapdiffop->module~leapbc module~leaphypre->module~leapeulerian module~particles_point->module~leapeulerian module~particles_resolved->module~leapeulerian module~particles_resolved->module~leapdiffop module~particles_resolved->module~immersed_boundaries proc~bc_set_buildmask bc_set%bc_set_BuildMask proc~bc_set_buildmask->module~leapeulerian module~cavity_smod cavity_smod module~cavity_smod->module~cdifs_cases module~cdifs_advancesolution_smod cdifs_AdvanceSolution_smod module~cdifs_advancesolution_smod->module~cdifs module~cdifs_monitor_smod cdifs_Monitor_smod module~cdifs_monitor_smod->module~cdifs module~cdifs_preparesolver_smod cdifs_PrepareSolver_smod module~cdifs_preparesolver_smod->module~cdifs module~cdifs_writeoutputdata_smod cdifs_WriteOutputData_smod module~cdifs_writeoutputdata_smod->module~cdifs module~cdifs_writerestartdata_smod cdifs_WriteRestartData_smod module~cdifs_writerestartdata_smod->module~cdifs module~channel_flow_smod channel_flow_smod module~channel_flow_smod->module~cdifs_cases module~cylinder_smod cylinder_smod module~cylinder_smod->module~cdifs_cases module~grans_advancesolution_smod grans_AdvanceSolution_smod module~grans_advancesolution_smod->module~grans module~grans_module_smod grans_module_smod module~grans_module_smod->module~grans module~grans_preparesolver_smod grans_PrepareSolver_smod module~grans_preparesolver_smod->module~grans module~grans_writeoutputdata_smod grans_WriteOutputData_smod module~grans_writeoutputdata_smod->module~grans module~grans_writerestartdata_smod grans_WriteRestartData_smod module~grans_writerestartdata_smod->module~grans module~headon_collision_smod headon_collision_smod module~headon_collision_smod->module~grans_cases module~homogeneous_cooling_smod homogeneous_cooling_smod module~homogeneous_cooling_smod->module~grans_cases module~immersed_boundaries->module~immersed_boundaries_markers module~immersed_boundaries->module~immersed_boundaries_solids module~lamb_oseen_smod lamb_oseen_smod module~lamb_oseen_smod->module~cdifs_cases module~nga_smod nga_smod module~nga_smod->module~particles_point module~rebound_smod rebound_smod module~rebound_smod->module~cdifs_cases module~rotating_drum_smod rotating_drum_smod module~rotating_drum_smod->module~grans_cases module~settling_sphere_smod settling_sphere_smod module~settling_sphere_smod->module~cdifs_cases module~taylor_green_smod taylor_green_smod module~taylor_green_smod->module~cdifs_cases module~vortex_dipole_smod vortex_dipole_smod module~vortex_dipole_smod->module~cdifs_cases module~vortex_impingement_smod vortex_impingement_smod module~vortex_impingement_smod->module~cdifs_cases proc~add_markers add_markers proc~add_markers->module~particles_resolved proc~add_markers->module~immersed_boundaries proc~add_markers~2 add_markers proc~add_markers~2->module~particles_resolved proc~add_markers~2->module~immersed_boundaries proc~cdifs_channel_flow_bcs cdifs_channel_flow_bcs proc~cdifs_channel_flow_bcs->module~leapbc proc~cdifs_cylinder_bcs cdifs_cylinder_bcs proc~cdifs_cylinder_bcs->module~leapbc proc~cdifs_lamb_oseen_bcs cdifs_lamb_oseen_bcs proc~cdifs_lamb_oseen_bcs->module~leapbc proc~cdifs_lid_driven_cavity_bcs cdifs_lid_driven_cavity_bcs proc~cdifs_lid_driven_cavity_bcs->module~leapbc proc~cdifs_obj_preparesolveroperators cdifs_obj_PrepareSolverOperators proc~cdifs_obj_preparesolveroperators->module~leapbc proc~cdifs_obj_preparesolveroperatorsdiv cdifs_obj_PrepareSolverOperatorsDIV proc~cdifs_obj_preparesolveroperatorsdiv->module~leapbc proc~cdifs_obj_preparesolveroperatorspgrad cdifs_obj_PrepareSolverOperatorsPGRAD proc~cdifs_obj_preparesolveroperatorspgrad->module~leapbc proc~cdifs_obj_preparesolveroperatorsvlap cdifs_obj_PrepareSolverOperatorsVLAP proc~cdifs_obj_preparesolveroperatorsvlap->module~leapbc proc~cdifs_rebound_bcs cdifs_rebound_bcs proc~cdifs_rebound_bcs->module~leapbc proc~cdifs_rebound_respart cdifs_rebound_ResPart proc~cdifs_rebound_respart->module~particles_resolved proc~cdifs_settling_sphere_bcs cdifs_settling_sphere_bcs proc~cdifs_settling_sphere_bcs->module~leapbc proc~cdifs_settling_sphere_respart cdifs_settling_sphere_ResPart proc~cdifs_settling_sphere_respart->module~particles_resolved proc~cdifs_taylor_green_bcs cdifs_taylor_green_bcs proc~cdifs_taylor_green_bcs->module~leapbc proc~cdifs_vortex_dipole_bcs cdifs_vortex_dipole_bcs proc~cdifs_vortex_dipole_bcs->module~leapbc proc~cdifs_vortex_impingement_bcs cdifs_vortex_impingement_bcs proc~cdifs_vortex_impingement_bcs->module~leapbc proc~grans_obj_preparesolver_operators grans_obj_PrepareSolver_operators proc~grans_obj_preparesolver_operators->module~leapdiffop proc~marker_set_computesolidvolfrac marker_set%marker_set_ComputeSolidVolFrac proc~marker_set_computesolidvolfrac->module~leapdiffop proc~op_obj_applylaplaciandc op_obj%op_obj_ApplyLaplacianDC proc~op_obj_applylaplaciandc->module~leapbc program~main main program~main->module~cdifs program~main->module~grans proc~cdifs_cylinder_ib cdifs_cylinder_IB proc~cdifs_cylinder_ib->module~immersed_boundaries proc~cdifs_rebound_ib cdifs_rebound_IB proc~cdifs_rebound_ib->module~immersed_boundaries proc~cdifs_settling_sphere_ib cdifs_settling_sphere_IB proc~cdifs_settling_sphere_ib->module~immersed_boundaries

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: EULERIAN_SET_HTBL_SIZE = 20

Derived Types

type, public, extends(eulerian_obj_base) ::  eulerian_obj_i

Eulerian data of type integer

Components

Type Visibility Attributes Name Initial
type(block_obj), public, pointer :: block => null()

Associated block structure

integer, public, allocatable :: cell(:,:,:)

Cell data

character(len=:), public, allocatable :: name

Name of variable

type(parallel_obj), public, pointer :: parallel => null()

Associated parallel structure

integer, public :: staggering = 0

Type-Bound Procedures

procedure, public :: AddUpGhostCells => eulerian_obj_AddUpGhostCells
procedure, public :: AddUpGhostCells_x => eulerian_obj_AddUpGhostCells_x
procedure, public :: AddUpGhostCells_y => eulerian_obj_AddUpGhostCells_y
procedure, public :: AddUpGhostCells_z => eulerian_obj_AddUpGhostCells_z
procedure, public :: Info => eulerian_obj_Info
procedure, public :: UpdateGhostCells => eulerian_obj_UpdateGhostCells
procedure, public :: UpdateGhostCells_x => eulerian_obj_UpdateGhostCells_x
procedure, public :: UpdateGhostCells_y => eulerian_obj_UpdateGhostCells_y
procedure, public :: UpdateGhostCells_z => eulerian_obj_UpdateGhostCells_z
procedure, public :: allocate => eulerian_obj_allocate
generic, public :: assignment(=) => eulerian_obj_AssignEulerianObj, eulerian_obj_AssignReal0D, eulerian_obj_AssignInt0D
procedure, public :: deallocate => eulerian_obj_deallocate
procedure, public :: eulerian_obj_AddEulerianIObj
procedure, public :: eulerian_obj_AddEulerianRObj
procedure, public :: eulerian_obj_AssignEulerianObj
procedure, public :: eulerian_obj_AssignInt0D
procedure, public :: eulerian_obj_AssignReal0D
procedure, public :: eulerian_obj_MulInt0D
procedure, public :: eulerian_obj_MulReal0D
procedure, public :: eulerian_obj_SubEulerianIObj
procedure, public :: eulerian_obj_SubEulerianRObj
procedure, public :: finalize => eulerian_obj_Final
procedure, public :: initialize => eulerian_obj_Init
procedure, public :: mean => eulerian_obj_mean
procedure, public :: norm2 => eulerian_obj_norm2
generic, public :: operator(*) => eulerian_obj_MulReal0D, eulerian_obj_MulInt0D
generic, public :: operator(+) => eulerian_obj_AddEulerianRObj, eulerian_obj_AddEulerianIObj
generic, public :: operator(-) => eulerian_obj_SubEulerianRObj, eulerian_obj_SubEulerianIObj

type, public, extends(eulerian_obj_base) ::  eulerian_obj_r

Eulerian data of type real

Components

Type Visibility Attributes Name Initial
type(block_obj), public, pointer :: block => null()

Associated block structure

real(kind=wp), public, allocatable :: cell(:,:,:)

Cell data

character(len=:), public, allocatable :: name

Name of variable

type(parallel_obj), public, pointer :: parallel => null()

Associated parallel structure

integer, public :: staggering = 0

Type-Bound Procedures

procedure, public :: AddUpGhostCells => eulerian_obj_AddUpGhostCells
procedure, public :: AddUpGhostCells_x => eulerian_obj_AddUpGhostCells_x
procedure, public :: AddUpGhostCells_y => eulerian_obj_AddUpGhostCells_y
procedure, public :: AddUpGhostCells_z => eulerian_obj_AddUpGhostCells_z
procedure, public :: Info => eulerian_obj_Info
procedure, public :: UpdateGhostCells => eulerian_obj_UpdateGhostCells
procedure, public :: UpdateGhostCells_x => eulerian_obj_UpdateGhostCells_x
procedure, public :: UpdateGhostCells_y => eulerian_obj_UpdateGhostCells_y
procedure, public :: UpdateGhostCells_z => eulerian_obj_UpdateGhostCells_z
procedure, public :: allocate => eulerian_obj_allocate
generic, public :: assignment(=) => eulerian_obj_AssignEulerianObj, eulerian_obj_AssignReal0D, eulerian_obj_AssignInt0D
procedure, public :: deallocate => eulerian_obj_deallocate
procedure, public :: eulerian_obj_AddEulerianIObj
procedure, public :: eulerian_obj_AddEulerianRObj
procedure, public :: eulerian_obj_AssignEulerianObj
procedure, public :: eulerian_obj_AssignInt0D
procedure, public :: eulerian_obj_AssignReal0D
procedure, public :: eulerian_obj_MulInt0D
procedure, public :: eulerian_obj_MulReal0D
procedure, public :: eulerian_obj_SubEulerianIObj
procedure, public :: eulerian_obj_SubEulerianRObj
procedure, public :: finalize => eulerian_obj_Final
procedure, public :: initialize => eulerian_obj_Init
procedure, public :: mean => eulerian_obj_mean
procedure, public :: norm2 => eulerian_obj_norm2
generic, public :: operator(*) => eulerian_obj_MulReal0D, eulerian_obj_MulInt0D
generic, public :: operator(+) => eulerian_obj_AddEulerianRObj, eulerian_obj_AddEulerianIObj
generic, public :: operator(-) => eulerian_obj_SubEulerianRObj, eulerian_obj_SubEulerianIObj

type, public ::  eulerian_set

A collection of eulerian objects

Components

Type Visibility Attributes Name Initial
type(block_obj), public, pointer :: block => null()

Associated block structure

type(eulerian_ptr), public, allocatable :: field(:)

A collection of Eulerian objects

logical, public :: overwrite = .true.

Switch to overwrite IO files

type(parallel_obj), public, pointer :: parallel => null()

Associated parallel structure

character(len=str64), public :: read_file

file to read

character(len=str64), public :: write_file

file to write

type(hashtbl_obj), private :: tbl

Hash table

Type-Bound Procedures

procedure, public :: Add => eulerian_set_Add
procedure, public :: Finalize => eulerian_set_Final
procedure, public :: GetIndex => eulerian_set_GetIndex
procedure, public :: GetReadFileName => eulerian_set_GetReadFileName
procedure, public :: GetWriteFileName => eulerian_set_GetWriteFileName
procedure, public :: Info => eulerian_set_Info
procedure, public :: Initialize => eulerian_set_Init
procedure, public :: Read => eulerian_set_Read
procedure, public :: ReadAllNGA => eulerian_set_ReadAllNGA
procedure, public :: ReadNGA => eulerian_set_ReadNGA
procedure, public :: ReadSingle => eulerian_set_ReadSingle
procedure, public :: SetOverwrite => eulerian_set_SetOverwrite
procedure, public :: SetReadFileName => eulerian_set_SetReadFileName
procedure, public :: SetWriteFileName => eulerian_set_SetWriteFileName
procedure, public :: Write => eulerian_set_Write
procedure, public :: WriteSilo => eulerian_set_WriteSilo
procedure, public :: WriteSingle => eulerian_set_WriteSingle
procedure, public :: WriteSingleSilo => eulerian_set_WriteSingleSilo

type, private, abstract ::  eulerian_obj_base

Base structure for eulerian data

Components

Type Visibility Attributes Name Initial
type(block_obj), public, pointer :: block => null()

Associated block structure

character(len=:), public, allocatable :: name

Name of variable

type(parallel_obj), public, pointer :: parallel => null()

Associated parallel structure

integer, public :: staggering = 0

Type-Bound Procedures

procedure, public :: AddUpGhostCells => eulerian_obj_AddUpGhostCells
procedure, public :: AddUpGhostCells_x => eulerian_obj_AddUpGhostCells_x
procedure, public :: AddUpGhostCells_y => eulerian_obj_AddUpGhostCells_y
procedure, public :: AddUpGhostCells_z => eulerian_obj_AddUpGhostCells_z
procedure, public :: Info => eulerian_obj_Info
procedure, public :: UpdateGhostCells => eulerian_obj_UpdateGhostCells
procedure, public :: UpdateGhostCells_x => eulerian_obj_UpdateGhostCells_x
procedure, public :: UpdateGhostCells_y => eulerian_obj_UpdateGhostCells_y
procedure, public :: UpdateGhostCells_z => eulerian_obj_UpdateGhostCells_z
procedure, public :: allocate => eulerian_obj_allocate
generic, public :: assignment(=) => eulerian_obj_AssignEulerianObj, eulerian_obj_AssignReal0D, eulerian_obj_AssignInt0D
procedure, public :: deallocate => eulerian_obj_deallocate
procedure, public :: eulerian_obj_AddEulerianIObj
procedure, public :: eulerian_obj_AddEulerianRObj
procedure, public :: eulerian_obj_AssignEulerianObj
procedure, public :: eulerian_obj_AssignInt0D
procedure, public :: eulerian_obj_AssignReal0D
procedure, public :: eulerian_obj_MulInt0D
procedure, public :: eulerian_obj_MulReal0D
procedure, public :: eulerian_obj_SubEulerianIObj
procedure, public :: eulerian_obj_SubEulerianRObj
procedure, public :: finalize => eulerian_obj_Final
procedure, public :: initialize => eulerian_obj_Init
procedure, public :: mean => eulerian_obj_mean
procedure, public :: norm2 => eulerian_obj_norm2
generic, public :: operator(*) => eulerian_obj_MulReal0D, eulerian_obj_MulInt0D
generic, public :: operator(+) => eulerian_obj_AddEulerianRObj, eulerian_obj_AddEulerianIObj
generic, public :: operator(-) => eulerian_obj_SubEulerianRObj, eulerian_obj_SubEulerianIObj

type, private ::  eulerian_ptr

Polymorphic pointer to either real or complex Eulerian data

Components

Type Visibility Attributes Name Initial
class(eulerian_obj_base), public, pointer :: p => null()

Functions

private function eulerian_obj_AddEulerianIObj(this, in) result(res)

Addition

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

type(eulerian_obj_i), intent(in) :: in

An Eulerian field

Return Value class(eulerian_obj_base), allocatable

private function eulerian_obj_AddEulerianRObj(this, in) result(res)

Addition

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

type(eulerian_obj_r), intent(in) :: in

An Eulerian field

Return Value type(eulerian_obj_r)

private function eulerian_obj_MulInt0D(this, in) result(res)

Multiplication

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

integer, intent(in) :: in

An Eulerian field

Return Value class(eulerian_obj_base), allocatable

private function eulerian_obj_MulReal0D(this, in) result(res)

Multiplication

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

real(kind=wp), intent(in) :: in

An Eulerian field

Return Value type(eulerian_obj_r)

private function eulerian_obj_SubEulerianIObj(this, in) result(res)

Addition

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

type(eulerian_obj_i), intent(in) :: in

An Eulerian field

Return Value class(eulerian_obj_base), allocatable

private function eulerian_obj_SubEulerianRObj(this, in) result(res)

Addition

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

type(eulerian_obj_r), intent(in) :: in

An Eulerian field

Return Value type(eulerian_obj_r)

private function eulerian_obj_mean(this) result(val)

Compute the mean of an Eulerian_obj

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

Return Value real(kind=wp)

private function eulerian_obj_norm2(this) result(val)

Compute norm2 of an Eulerian_obj

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(in) :: this

An Eulerian field

Return Value real(kind=wp)

private function eulerian_set_GetIndex(this, name) result(val)

Returns the index of an Eulerian_obj contained in this%fields given its name.

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

character(len=*), intent(in) :: name

Name of the field

Return Value integer

private function eulerian_set_GetReadFileName(this) result(name)

Return the base name of file to write

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

Return Value character(len=str64)

Name of file

private function eulerian_set_GetWriteFileName(this) result(name)

Return the base name of file to write

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

Return Value character(len=str64)

Name of file


Subroutines

private subroutine eulerian_obj_AddUpGhostCells(this)

Update and add-up the ghostcells

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_AddUpGhostCells_x(this)

Add up ghostcells in the x direction with non-blocking mpi directives

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_AddUpGhostCells_y(this)

Add up ghostcells in the y direction with non-blocking mpi directives

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_AddUpGhostCells_z(this)

Add up ghostcells in the z direction with non-blocking mpi directives

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_AssignEulerianObj(this, in)

Assignment for Eulerian_obj

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

class(eulerian_obj_base), intent(in) :: in

Object to assign

private subroutine eulerian_obj_AssignInt0D(this, in)

Assignment for Eulerian_obj

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

integer, intent(in) :: in

Object to assign

private subroutine eulerian_obj_AssignReal0D(this, in)

Assignment for Eulerian_obj

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

real(kind=wp), intent(in) :: in

Object to assign

private subroutine eulerian_obj_Final(this)

Finalize the Eulerian object

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_Info(this)

Print info about this structure

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_Init(this, name, block, parallel, stag)

Initialize an Eulerian field

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

character(len=*), intent(in) :: name

Name of variable

type(block_obj), intent(in), target :: block

A block object

type(parallel_obj), intent(in), target :: parallel

parallel structure from main program

integer, intent(in) :: stag

Staggering

private subroutine eulerian_obj_UpdateGhostCells(this)

Update the ghostcells

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_UpdateGhostCells_x(this)

Update the ghostcells in the x direction with non-blocking mpi directives

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_UpdateGhostCells_y(this)

Update the ghostcells in the y direction with non-blocking mpi directives

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_UpdateGhostCells_z(this)

Update the ghostcells in the z direction with non-blocking mpi directives

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_allocate(this)

Allocate an Eulerian object

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_obj_deallocate(this)

Deallocate an Eulerian object

Arguments

Type IntentOptional Attributes Name
class(eulerian_obj_base), intent(inout) :: this

An Eulerian field

private subroutine eulerian_set_Add(this, name, stag, obj)

Add a new element to a collection of Eulerian objects

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

character(len=*), intent(in) :: name

Name of variable

integer, intent(in) :: stag

Staggering

class(eulerian_obj_base), intent(inout), target :: obj

Eulerian obj to link and initialize

private subroutine eulerian_set_Final(this)

Finalize structure

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

private subroutine eulerian_set_Info(this)

Print info about this collection of eulerian objects

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

private subroutine eulerian_set_Init(this, block, parallel)

Initialize a collection of Eulerian objects

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

type(block_obj), intent(in), target :: block

A block object

type(parallel_obj), intent(in), target :: parallel

parallel structure from main program

private subroutine eulerian_set_Read(this, iter, time, list)

Read Eulerian data

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

integer, intent(out) :: iter

Iteration at write

real(kind=wp), intent(out) :: time

Time at write

character(len=str8), intent(in), optional :: list(:)

Names of fields to write

private subroutine eulerian_set_ReadAllNGA(this, ngadata)

Read all Eulerian objects in file

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

type(ngadata_obj), intent(inout) :: ngadata

NGAdata structure

private subroutine eulerian_set_ReadNGA(this, iter, time)

Read Eulerian data using MPI binary file tools

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

integer, intent(out) :: iter

Iteration at write

real(kind=wp), intent(out) :: time

Time at write

private subroutine eulerian_set_ReadSingle(this, h5, ind)

Read one Eulerian object based on name

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

type(h5hut_obj), intent(inout) :: h5

H5hut structure

integer, intent(in) :: ind

Index of Eulerian object

private subroutine eulerian_set_SetOverwrite(this, overwrite)

Set file overwritting

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

logical, intent(in) :: overwrite

Name of file

private subroutine eulerian_set_SetReadFileName(this, name)

Set the base name of file to read

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

character(len=*), intent(in) :: name

Name of file

private subroutine eulerian_set_SetWriteFileName(this, name)

Set the base name of file to write

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

character(len=*), intent(in) :: name

Name of file

private subroutine eulerian_set_Write(this, iter, time, list)

Write Eulerian data

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

integer, intent(in) :: iter

Iteration at write

real(kind=wp), intent(in) :: time

Time at write

character(len=str8), intent(in), optional :: list(:)

Names of fields to write

private subroutine eulerian_set_WriteSilo(this, iter, time, list)

Write Eulerian data using SILO

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

integer, intent(in) :: iter

Iteration at write

real(kind=wp), intent(in) :: time

Time at write

character(len=str8), intent(in), optional :: list(:)

Names of fields to write

private subroutine eulerian_set_WriteSingle(this, h5, ind)

Write a single Eulerian object to file

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

type(h5hut_obj), intent(inout) :: h5

H5hut structure

integer, intent(in) :: ind

Index of Eulerian object

private subroutine eulerian_set_WriteSingleSilo(this, silo, ind)

Write a single Eulerian objects to file using SILO

Arguments

Type IntentOptional Attributes Name
class(eulerian_set), intent(inout) :: this

A collection of Eulerian objects

type(silo_obj), intent(inout) :: silo

Silo structure

integer, intent(in) :: ind

Index of Eulerian object