particles_resolved Module

Methods to treat the particle phase as immersed boundaries in particle-resolved direct numerical simulations (PR-DNS)

The derived type ResPart_obj defines and stores information about a fully resolved particle, notably, - the size and material density of the particle - the particle centroid (position, linear, and angular velocity) - the hydrodynamic force and torque applied on the particle (computed by direct integration of fluid stresses on the particle surface) - the collision force applied on the particle (given by a collisin model)

The derived type ResPart_set defines a collection of fully resolved particles and methods to work on them. Notably, this object contains: - methods to add/remove fully resolved particles - information about these particles through the ResPart_obj object - Immersed Boundary that gives the morphology of these particles. - methods to integrate the particle equations of motion - methods to perform I/O.

Note that the immersed boundary object contains the tessellations of ALL particles. This means that we need to be able to match tesselation elements with the resolved particles they belong to. This is done by setting the marker_obj tag to equal the resolved particle ID when generating the tessellation elements. A lookup table then allows us to match the tessellation elements to their respective Resolved Particles.



Uses

  • module~~particles_resolved~~UsesGraph module~particles_resolved particles_resolved module~immersed_boundaries immersed_boundaries module~particles_resolved->module~immersed_boundaries module~leapbc leapBC module~particles_resolved->module~leapbc module~leapblock leapBlock module~particles_resolved->module~leapblock module~leapdiffop leapDiffOp module~particles_resolved->module~leapdiffop module~leapeulerian leapEulerian module~particles_resolved->module~leapeulerian module~leapio leapIO module~particles_resolved->module~leapio module~leapkinds leapKinds module~particles_resolved->module~leapkinds module~leaplagrangian leapLagrangian module~particles_resolved->module~leaplagrangian module~leapmonitor leapMonitor module~particles_resolved->module~leapmonitor module~leapparallel leapParallel module~particles_resolved->module~leapparallel module~leapparser leapParser module~particles_resolved->module~leapparser module~leaptimer leapTimer module~particles_resolved->module~leaptimer module~immersed_boundaries_markers immersed_boundaries_markers module~immersed_boundaries->module~immersed_boundaries_markers module~immersed_boundaries_solids immersed_boundaries_solids module~immersed_boundaries->module~immersed_boundaries_solids module~leapbc->module~leapblock module~leapbc->module~leapeulerian module~leapbc->module~leapio module~leapbc->module~leapkinds module~leapbc->module~leapparallel iso_fortran_env iso_fortran_env module~leapbc->iso_fortran_env module~leaputils leapUtils module~leapbc->module~leaputils mpi_f08 mpi_f08 module~leapbc->mpi_f08 module~leapblock->module~leapkinds module~leapblock->module~leapparallel module~leapblock->iso_fortran_env module~leapio_hdf5 leapIO_hdf5 module~leapblock->module~leapio_hdf5 module~leapblock->mpi_f08 module~leapdiffop->module~leapbc module~leapdiffop->module~leapblock module~leapdiffop->module~leapeulerian module~leapdiffop->module~leapkinds module~leapdiffop->module~leapparallel module~leapeulerian->module~leapblock module~leapeulerian->module~leapio module~leapeulerian->module~leapkinds module~leapeulerian->module~leapparallel module~leapeulerian->iso_fortran_env module~leapeulerian->module~leaputils module~leapeulerian->mpi_f08 module~leapio_h5hut leapIO_h5hut module~leapio->module~leapio_h5hut module~leapio->module~leapio_hdf5 module~leapio_silo leapIO_silo module~leapio->module~leapio_silo module~leapio_xdmf leapIO_xdmf module~leapio->module~leapio_xdmf module~leapkinds->iso_fortran_env module~leaplagrangian->module~leapblock module~leaplagrangian->module~leapio module~leaplagrangian->module~leapkinds module~leaplagrangian->module~leapparallel module~leapfilters leapfilters module~leaplagrangian->module~leapfilters module~leaplagrangian->module~leaputils module~leaplagrangian->mpi_f08 module~leapmonitor->module~leapkinds module~leapmonitor->module~leapparallel module~leapmonitor->iso_fortran_env module~leapmonitor->module~leaputils module~leapparallel->module~leapkinds module~leapparallel->iso_fortran_env module~leapparallel->mpi_f08 module~leapparser->module~leapkinds module~leapparser->iso_fortran_env module~leapcli leapCli module~leapparser->module~leapcli module~leaptimer->module~leapkinds module~leaptimer->module~leapparallel module~leaptimer->module~leapparser module~leaptimer->module~leaputils module~immersed_boundaries_markers->module~leapbc module~immersed_boundaries_markers->module~leapblock module~immersed_boundaries_markers->module~leapdiffop module~immersed_boundaries_markers->module~leapeulerian module~immersed_boundaries_markers->module~leapio module~immersed_boundaries_markers->module~leapkinds module~immersed_boundaries_markers->module~leaplagrangian module~immersed_boundaries_markers->module~leapmonitor module~immersed_boundaries_markers->module~leapparallel module~immersed_boundaries_markers->module~leapparser module~immersed_boundaries_markers->module~leaptimer module~immersed_boundaries_markers->iso_fortran_env module~leaphypre leapHypre module~immersed_boundaries_markers->module~leaphypre module~immersed_boundaries_solids->module~leapblock module~immersed_boundaries_solids->module~leapeulerian module~immersed_boundaries_solids->module~leapio module~immersed_boundaries_solids->module~leapkinds module~immersed_boundaries_solids->module~leaplagrangian module~immersed_boundaries_solids->module~leapparallel module~immersed_boundaries_solids->module~immersed_boundaries_markers module~leapcli->module~leapkinds module~leapfilters->module~leapkinds module~leapio_h5hut->module~leapkinds module~leapio_h5hut->module~leapparallel module~leapio_h5hut->module~leapio_hdf5 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~leapkinds module~leapio_silo->module~leapparallel module~leapio_silo->module~leaputils module~leapio_silo->mpi_f08 module~leapio_xdmf->module~leapkinds module~leapio_xdmf->module~leaputils module~leaputils->module~leapkinds module~leaphypre->module~leapblock module~leaphypre->module~leapeulerian module~leaphypre->module~leapkinds module~leaphypre->module~leapparallel module~leaphypre->mpi_f08 iso_c_binding iso_c_binding module~leaphypre->iso_c_binding

Used by

  • module~~particles_resolved~~UsedByGraph module~particles_resolved particles_resolved module~cdifs cdifs module~cdifs->module~particles_resolved module~collisions collisions module~cdifs->module~collisions module~collisions->module~particles_resolved module~grans grans module~grans->module~particles_resolved module~grans->module~collisions 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~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 program~main main program~main->module~cdifs program~main->module~grans

Derived Types

type, public, extends(lagrangian_obj) ::  ResPart_obj

An extended Lagrangian object that represents fully resolved particles

Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: Fc(3)

Collision force applied on particle

real(kind=wp), public :: Fcold(3)

Old collision force

real(kind=wp), public :: Fh(3)

Hydrodynamic force applied on particle

real(kind=wp), public :: Fhold(3)

Old hydrodynamic force

real(kind=wp), public :: Tc(3)

Collision torque applied on particle

real(kind=wp), public :: Tcold(3)

Old collision torque

real(kind=wp), public :: Th(3)

Hydrodynamic torque applied on particle

real(kind=wp), public :: Thold(3)

Old hydrodynamic torque

integer, public :: c(3)

nearest cell

real(kind=wp), public :: d

Diameter of the particle

integer(kind=leapI8), public :: id

Identifying number (inactive if <0)

real(kind=wp), public :: p(3)

position

real(kind=wp), public :: pold(3)

Old particle position

real(kind=wp), public :: rho

Particle density

integer, public :: s

A tag

real(kind=wp), public :: v(3)

Particle velocity

real(kind=wp), public :: vold(3)

Old particle velocity

real(kind=wp), public :: w(3)

Particle angular velocity

real(kind=wp), public :: wold(3)

Old particle angular velocity

Type-Bound Procedures

procedure, public :: Extrapolate => lagrangian_obj_Extrapolate
procedure, public :: Interpolate => lagrangian_obj_Interpolate
procedure, public :: Locate => lagrangian_obj_Locate
procedure, public :: assign => ResPart_obj_assign
generic, public :: assignment(=) => assign

type, public, extends(lagrangian_set) ::  ResPart_set

An extended Lagrgian set representing resolved particles

Components

Type Visibility Attributes Name Initial
real(kind=wp), public :: CPG(3) = 0.0_wp

Constant Pressure Gradient forcing

type(bc_set), public, pointer :: bcs => null()

boundary conditions object

type(block_obj), public, pointer :: block => null()

Associated block structure

integer, public :: count = 0

Total count across all MPI ranks

integer, public :: count_ = 0

Local count for this rank

integer, public, allocatable :: count_proc(:)

Nbr of lagrangian objects per proc

procedure(kernel_1D), public, pointer, nopass :: g1ex => int_g1_triangle

1D kernel used in extrapolations

procedure(kernel_1D), public, pointer, nopass :: g1in => g1_triangle

1D kernel used in interpolations

real(kind=wp), public :: gravity(3) = 0.0_wp

Gravity

type(marker_set), public :: ib

Immersed boundary

logical, public :: is_initialized = .false.

Flag to determine whether this has been initialized

real(kind=wp), public :: l_filter

Half filter width

integer, public, allocatable :: lookup(:)

Lookup array

type(monitor_set), public, pointer :: monitors => null()

Monitors to print to stdout and files

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

Name of the Lagrangian set

type(op_obj), public, pointer :: op => null()

operators object

logical, public :: overwrite = .true.

Switch to overwrite IO files

class(lagrangian_obj), public, allocatable :: p(:)

Array of Lagrangian_obj or any extended type

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

Associated parallel structure

type(parser_obj), public, pointer :: parser => null()

Parser for input file

integer, public, allocatable :: ranks(:)

MPI ranks of the lagrangian objects

character(len=str64), public :: read_file

File to read

real(kind=wp), public :: rhof = 1.0_wp

Fluid density

class(lagrangian_obj), public, allocatable :: sample

Sample used in allocation of polymorphic data

integer, public :: stib = 3

Stencil size for filtering

type(timer_obj), public, pointer :: timer => null()

Timer utility

character(len=str64), public :: write_file

File to write

Type-Bound Procedures

procedure, public :: AdvanceCenters => ResPart_set_AdvanceCenters
procedure, public :: AdvanceMarkers => ResPart_set_AdvanceMarkers
procedure, public :: ApplyPeriodicity => lagrangian_set_ApplyPeriodicity
procedure, public :: Communicate => lagrangian_set_Communicate
procedure, public :: CreateMPIType => lagrangian_set_CreateMPIType
procedure, public :: CreateMonitor => ResPart_set_CreateMonitor
procedure, public :: Filter => ResPart_set_Filter
generic, public :: Finalize => lagrangian_set_Final
procedure, public :: FreeMPIType => lagrangian_set_FreeMPIType
procedure, public :: GetCentroidVF => ResPart_set_GetCentroidVF
procedure, public :: GetHydroForces => ResPart_set_GetHydroForces
procedure, public :: GetIBForcing => ResPart_set_GetIBForcing
procedure, public :: GetOverwrite => lagrangian_set_GetOverwrite
procedure, public :: GetReadFileName => lagrangian_set_GetReadFileName
procedure, public :: GetSurfaceStresses => ResPart_set_GetSurfaceStresses
procedure, public :: GetWriteFileName => lagrangian_set_GetWriteFileName
procedure, public :: Info => lagrangian_set_Info
generic, public :: Initialize => lagrangian_set_Init
procedure, public :: Localize => lagrangian_set_Localize
procedure, public :: Prepare => ResPart_set_Prepare
procedure, public :: Read => ResPart_set_ReadH5HUT
procedure, public :: ReadH5HUT => ResPart_set_ReadH5HUT
procedure, public :: ReadHDF5 => ResPart_set_ReadHDF5
procedure, public :: Recycle => lagrangian_set_Recycle
procedure, public :: Regroup => ResPart_set_Regroup
procedure, public :: Resize => lagrangian_set_Resize
procedure, public :: SetFilterKernel => lagrangian_set_SetFilterKernel
procedure, public :: SetFilterSize => ResPart_set_SetFilterSize
procedure, public :: SetMPIDataTypeParams => ResPart_set_SetMPIDataTypeParams
procedure, public :: SetObjectType => ResPart_set_SetObjectType
procedure, public :: SetOverwrite => lagrangian_set_SetOverwrite
procedure, public :: SetReadFileName => ResPart_set_SetReadFileName
procedure, public :: SetWriteFileName => ResPart_set_SetWriteFileName
procedure, public :: StoreOld => ResPart_set_StoreOld
procedure, public :: UpdateCount => lagrangian_set_UpdateCount
procedure, public :: UpdateGhostObjects => lagrangian_set_UpdateGhostObjects
procedure, public :: UpdateLookup => ResPart_set_UpdateLookup
procedure, public :: UpdateMonitor => ResPart_set_UpdateMonitor
procedure, public :: UpdateNormals => ResPart_set_UpdateNormals
procedure, public :: UpdateSDF => ResPart_set_UpdateSDF
procedure, public :: Write => ResPart_set_WriteH5HUT
procedure, public :: WriteH5HUT => ResPart_set_WriteH5HUT
procedure, public :: WriteHDF5 => ResPart_set_WriteHDF5
procedure, public :: WriteSilo => ResPart_set_WriteSILO
procedure, public :: lagrangian_set_Final => ResPart_set_Final
procedure, public :: lagrangian_set_Init => ResPart_set_Init

Functions

private impure function ResPart_set_GetCentroidVF(this, ibVF) result(val)

Computes average solid volume fraction at particle centroids

Arguments

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

Collection of Resolved Particles

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

Solid volume fraction

Return Value real(kind=wp)

Mean solid volume fraction at particle centroids

private impure function ResPart_set_GetOwnerRankByRP(this, marker) result(rank)

Returns the MPI rank of the lagrangian centroid owning this marker.

Arguments

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

Set of resolved particles

class(lagrangian_obj), intent(in) :: marker

A surface marker

Return Value integer

Result

private pure function cross_product(u, v) result(val)

Returns the cross product of two vectors.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: u(3)

Input vector

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

Input vector

Return Value real(kind=wp), (3)

Result


Subroutines

private pure subroutine ResPart_obj_assign(this, val)

Assignment

Arguments

Type IntentOptional Attributes Name
class(ResPart_obj), intent(inout) :: this
class(lagrangian_obj), intent(in) :: val

private pure subroutine ResPart_set_AdvanceCenters(this, dt)

Advances centers to next timestep

Arguments

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

Collection of Resolved Particles

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

Timestep

private pure subroutine ResPart_set_AdvanceMarkers(this, dt)

Advances markers to next timestep

Arguments

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

Collection of Resolved Particles

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

Timestep

private impure subroutine ResPart_set_CreateMonitor(this)

Creates monitor file for Resolved Particles

Arguments

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

Collection of Resolved Particles

private impure subroutine ResPart_set_Filter(this, var, field)

Filters a quantity to the Eulerian grid

Arguments

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

Set of resolved particles

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

Variable to compute

type(eulerian_obj_r), intent(inout) :: field

Filtered quantity

private impure subroutine ResPart_set_Final(this)

Finalizes the ResPart_set type. This subourtine replaces the inheritted lagrangian_final.

Arguments

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

Set of resolved partilces

private impure subroutine ResPart_set_GetHydroForces(this, P, U, V, W, ibVF, visc)

Computes hydrodynamic force on particle.

Arguments

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

Collection of Resolved Particles

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

Fluid pressure field

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

Fluid velocity field in 1-dir

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

Fluid velocity field in 2-dir

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

Fluid velocity field in 3-dir

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

Solid volume fraction

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

Fluid viscosity

private impure subroutine ResPart_set_GetIBForcing(this, Um, Vm, Wm, rhof, SA, ibF, dt)

Computes the IB forcing

Arguments

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

Collection of Resolved Particles

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

Velocity in 1-dir

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

Velocity in 2-dir

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

Velocity in 3-dir

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

Fluid density

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

Surface area

type(eulerian_obj_r), intent(inout) :: ibF(3)

IB forcing

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

Timestep

private impure subroutine ResPart_set_GetSurfaceStresses(this, P, U, V, W, ibVF, visc)

Computes hydrodynamic stresses on markers

Arguments

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

Collection of Resolved Particles

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

Fluid pressure field

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

Fluid velocity field in 1-dir

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

Fluid velocity field in 2-dir

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

Fluid velocity field in 3-dir

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

Solid volume fraction

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

Fluid viscosity

private impure subroutine ResPart_set_Init(this, name, block, parallel)

Initializes the ResPart_set type. This subourtine replaces the inheritted lagrangian_init.

Arguments

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

Set of resolved partilces

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

Name of instance

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

A block object

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

Parallel structure to link with

private impure subroutine ResPart_set_Prepare(this, timer, parser, operators, bcs, monitors, update_time)

Prepares ResPart_set for use with solvers.

Arguments

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

Collection of Resolved Particles

type(timer_obj), intent(in), target :: timer

Timer utility

type(parser_obj), intent(in), target :: parser

Parser for input file

type(op_obj), intent(in), target :: operators

Operators object

type(bc_set), intent(in), target :: bcs

Boundary conditions object

type(monitor_set), intent(in), target :: monitors

Monitors to print to stdout and files

logical, intent(in), optional :: update_time

Update time and iteration based on read file

private impure subroutine ResPart_set_ReadH5HUT(this, iter, time, step)

Reads ResPart data from file using H5HUT.

Arguments

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

Set of resolved particles

integer, intent(out) :: iter

Iteration at write

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

Time at write

integer, intent(in), optional :: step

User supplied step to open

private impure subroutine ResPart_set_ReadHDF5(this, iter, time)

Reads ResPart data from file with HDF5.

Arguments

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

Set of resolved particles

integer, intent(out) :: iter

Iteration at write

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

Time at write

private impure subroutine ResPart_set_Regroup(this)

Regroup markers with their respective centroids on the same MPI block

Arguments

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

Set of resolved particles

private impure subroutine ResPart_set_SetFilterSize(this, l_filter)

Filters a quantity to the Eulerian grid

Arguments

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

Set of resolved particles

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

Filter size

private impure subroutine ResPart_set_SetMPIDataTypeParams(this, types, lengths, displacement)

Sets up parameters used when creating the MPI derived type.

Arguments

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

Set of resolved particles

type(MPI_Datatype), intent(out), allocatable :: types(:)

Array of types

integer, intent(out), allocatable :: lengths(:)

Array of lengths

integer(kind=MPI_ADDRESS_KIND), intent(out), allocatable :: displacement(:)

Array of displacements

private pure subroutine ResPart_set_SetObjectType(this)

Sets the sample type used in allocation of polymorphic variables.

Arguments

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

Set of resolved particles

private pure subroutine ResPart_set_SetReadFileName(this, name)

Sets the base name of file to read.

Arguments

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

Set of resolved particles

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

Name of file

private pure subroutine ResPart_set_SetWriteFileName(this, name)

Sets the base name of file to write.

Arguments

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

Set of resolved particles

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

Name of file

private pure subroutine ResPart_set_StoreOld(this)

Stores values from previous timestep

Arguments

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

Collection of Resolved Particles

private pure subroutine ResPart_set_UpdateLookup(this)

Update lookup array -- The lookup array returns the local (MPI rank) index of a centroid when given the global ID of that centroid

Arguments

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

Set of resolved particles

private subroutine ResPart_set_UpdateMonitor(this)

Arguments

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

Collection of Resolved Particles

private impure subroutine ResPart_set_UpdateNormals(this, ibN)

Updates the Normals field

Arguments

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

Collection of Resolved Particles

type(eulerian_obj_r), intent(inout) :: ibN(3)

Normals field

private impure subroutine ResPart_set_UpdateSDF(this, SDF)

Updates the Surface Density Function

Arguments

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

Collection of Resolved Particles

type(eulerian_obj_r), intent(inout) :: SDF

Surface density function

private impure subroutine ResPart_set_WriteH5HUT(this, iter, time)

Writes ResPart data to file using H5HUT.

Arguments

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

Set of resolved particles

integer, intent(in) :: iter

Iteration at write

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

Time at write

private impure subroutine ResPart_set_WriteHDF5(this, iter, time)

Writes ResPart data to file using HDF5.

Arguments

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

Set of resolved particles

integer, intent(in) :: iter

Iteration at write

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

Time at write

private impure subroutine ResPart_set_WriteSILO(this, iter, time, list)

Writes data to disk in Silo format.

Arguments

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

Set of resolved particles

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 components to write