leapIO_xdmf Module

Utility to write an XDMF file to use with VisIt. Currently only supports 3D data on "3DRectMesh" grids with nodal data stored in HDF5 files.



Uses

  • module~~leapio_xdmf~~UsesGraph module~leapio_xdmf leapIO_xdmf module~leapkinds leapKinds module~leapio_xdmf->module~leapkinds module~leaputils leapUtils module~leapio_xdmf->module~leaputils iso_fortran_env iso_fortran_env module~leapkinds->iso_fortran_env module~leaputils->module~leapkinds

Used by

  • module~~leapio_xdmf~~UsedByGraph module~leapio_xdmf leapIO_xdmf module~leapio leapIO module~leapio->module~leapio_xdmf module~cdifs cdifs module~cdifs->module~leapio module~leapbc leapBC module~cdifs->module~leapbc module~leapeulerian leapEulerian module~cdifs->module~leapeulerian module~leapsolver leapSolver module~cdifs->module~leapsolver module~particles_resolved particles_resolved module~cdifs->module~particles_resolved module~collisions collisions module~cdifs->module~collisions module~immersed_boundaries immersed_boundaries module~cdifs->module~immersed_boundaries module~leapdiffop leapDiffOp module~cdifs->module~leapdiffop module~leaphypre leapHypre module~cdifs->module~leaphypre module~grans grans module~grans->module~leapio module~grans->module~leapbc module~grans->module~leapeulerian module~grans->module~leapsolver module~particles_point particles_point module~grans->module~particles_point module~grans->module~particles_resolved module~grans->module~collisions module~grans->module~immersed_boundaries module~grans->module~leapdiffop module~grans->module~leaphypre module~immersed_boundaries_markers immersed_boundaries_markers module~immersed_boundaries_markers->module~leapio module~immersed_boundaries_markers->module~leapbc module~immersed_boundaries_markers->module~leapeulerian module~leaplagrangian leapLagrangian module~immersed_boundaries_markers->module~leaplagrangian module~immersed_boundaries_markers->module~leapdiffop module~immersed_boundaries_markers->module~leaphypre module~immersed_boundaries_solids immersed_boundaries_solids module~immersed_boundaries_solids->module~leapio module~immersed_boundaries_solids->module~immersed_boundaries_markers module~immersed_boundaries_solids->module~leapeulerian module~immersed_boundaries_solids->module~leaplagrangian module~leapbc->module~leapio module~leapbc->module~leapeulerian module~leapeulerian->module~leapio module~leaplagrangian->module~leapio module~leapsolver->module~leapio module~particles_point->module~leapio module~particles_point->module~leapeulerian module~particles_point->module~leaplagrangian module~particles_point->module~immersed_boundaries module~particles_point->module~leapdiffop module~particles_resolved->module~leapio module~particles_resolved->module~leapbc module~particles_resolved->module~leapeulerian module~particles_resolved->module~leaplagrangian module~particles_resolved->module~immersed_boundaries module~particles_resolved->module~leapdiffop program~main main program~main->module~leapio program~main->module~cdifs program~main->module~grans program~main->module~leapsolver 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~collisions->module~particles_point module~collisions->module~particles_resolved module~collisions->module~immersed_boundaries 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~immersed_boundaries->module~immersed_boundaries_markers module~immersed_boundaries->module~immersed_boundaries_solids module~leapdiffop->module~leapbc module~leapdiffop->module~leapeulerian module~leaphypre->module~leapeulerian proc~bc_set_buildmask bc_set%bc_set_BuildMask proc~bc_set_buildmask->module~leapeulerian proc~cdifs_obj_preparesolverbodyforce cdifs_obj_PrepareSolverBodyforce proc~cdifs_obj_preparesolverbodyforce->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~grans_obj_preparesolveroperators grans_obj_PrepareSolverOperators proc~grans_obj_preparesolveroperators->module~leapdiffop proc~marker_set_computesolidvolfrac marker_set%marker_set_ComputeSolidVolFrac proc~marker_set_computesolidvolfrac->module~leapdiffop

Variables

Type Visibility Attributes Name Initial
character(len=*), public, parameter :: XDMF_EXTENSION = '.xdmf'

Default file extension


Derived Types

type, public ::  xdmf_obj

A utility to write XDMF files.

Components

Type Visibility Attributes Name Initial
type(xdmf_attribute_obj), public, allocatable :: fields(:)

Fields described by this XDMF file

integer, public :: fields_count

Number of fields

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

XDMF file name

type(xdmf_grid_obj), public :: grid

XDMF grid

Type-Bound Procedures

procedure, public :: AddField => xdmf_obj_AddField
procedure, public :: AddGrid => xdmf_obj_AddGrid
procedure, public :: Finalize => xdmf_obj_Final
procedure, public :: Initialize => xdmf_obj_Init
procedure, public :: Resize => xdmf_obj_Resize
procedure, public :: Write => xdmf_obj_Write

type, private ::  xdmf_attribute_obj

An XDMF attribute.

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: dimensions

XDMF attribute dimensions

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

XDMF attribute format

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

XDMF attribute name

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

XDMF attribute path

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

XDMF attribute precision

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

XDMF attribute type

Type-Bound Procedures

procedure, public :: Free => xdmf_attribute_obj_Free

type, private ::  xdmf_grid_obj

An XDMF grid.

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: NumberOfElements

Grid dimensions stored as a string of the type "nx ny nz"

type(xdmf_attribute_obj), public :: axis(3)

Grid axes

integer, public :: dims(3)

Grid dimensions

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

Grid name

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

Path to block_obj represinting the grid

Type-Bound Procedures

procedure, public :: Free => xdmf_grid_obj_Free

Subroutines

private pure subroutine xdmf_attribute_obj_Free(this)

Frees up data stored by this XDMF attribute.

Arguments

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

XDMF attribute object

private pure subroutine xdmf_grid_obj_Free(this)

Frees up data stored by this XDMF grid.

Arguments

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

XDMF grid object

private pure subroutine xdmf_obj_AddField(this, name, type, precision, path)

Adds field information to the xdmf object.

Arguments

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

XDMF object

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

Field name in the HDF5 dataset

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

Type is 'Float' or 'Int"

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

8 or 4 depending on type and working precision

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

Path to the HDF5 dataset

private pure subroutine xdmf_obj_AddGrid(this, name, dims, path, x1name, x2name, x3name)

Adds grid information to the xdmf object.

Arguments

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

XDMF object

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

Grid name

integer, intent(in) :: dims(3)

Grid size

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

Path to block_obj containing grid data

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

Name of x1 axis in block_obj

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

Name of x2 axis in block_obj

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

Name of x3 axis in block_obj

private pure subroutine xdmf_obj_Final(this)

Finalizes object and frees memmory.

Arguments

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

XDMF object

private pure subroutine xdmf_obj_Init(this)

Initialize XDMF object.

Arguments

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

XDMF object

private pure subroutine xdmf_obj_Resize(this, size_target)

Resizes the fields array in an xdmf object. Note that resizing occurs in increaments of size (RESIZE_INCREMENT). By default, RESIZE_INCREMENT=10, meaning that if resizing occurs, it will increase or reduce the array size by 10 slots. This is done to avoid frequent reallocating.

Arguments

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

XDMF object

integer, intent(in) :: size_target

Target new size

private impure subroutine xdmf_obj_Write(this, filename)

Write the XDMF info to a file. This is a serial subroutine and should be called by only one rank.

Arguments

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

XDMF object

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

Name of file to write