nga_smod Submodule


Author: Mohamed Houssem Kasbaoui

Tools to read raw NGA part files into LEAP point particles object


Uses

  • module~~nga_smod~~UsesGraph module~nga_smod nga_smod module~particles_point particles_point module~nga_smod->module~particles_point mpi_f08 mpi_f08 module~nga_smod->mpi_f08 module~immersed_boundaries immersed_boundaries module~particles_point->module~immersed_boundaries module~leapblock leapBlock module~particles_point->module~leapblock module~leapdiffop leapDiffOp module~particles_point->module~leapdiffop module~leapeulerian leapEulerian module~particles_point->module~leapeulerian module~leapio leapIO module~particles_point->module~leapio module~leapkinds leapKinds module~particles_point->module~leapkinds module~leaplagrangian leapLagrangian module~particles_point->module~leaplagrangian module~leapmonitor leapMonitor module~particles_point->module~leapmonitor module~leapparallel leapParallel module~particles_point->module~leapparallel module~leapparser leapParser module~particles_point->module~leapparser module~leaptimer leapTimer module~particles_point->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~leapblock->mpi_f08 module~leapblock->module~leapkinds module~leapblock->module~leapparallel module~leapdiffop->module~leapblock module~leapdiffop->module~leapeulerian module~leapdiffop->module~leapkinds module~leapdiffop->module~leapparallel module~leapbc leapBC module~leapdiffop->module~leapbc module~leapeulerian->mpi_f08 module~leapeulerian->module~leapblock module~leapeulerian->module~leapio module~leapeulerian->module~leapkinds module~leapeulerian->module~leapparallel module~leapeulerian->module~leapparser module~leapio_mpi leapIO_mpi module~leapeulerian->module~leapio_mpi module~leaputils leapUtils module~leapeulerian->module~leaputils module~leapio_h5hut leapIO_h5hut module~leapio->module~leapio_h5hut module~leapio_hdf5 leapIO_hdf5 module~leapio->module~leapio_hdf5 module~leapio->module~leapio_mpi module~leapio_silo leapIO_silo module~leapio->module~leapio_silo iso_fortran_env iso_fortran_env module~leapkinds->iso_fortran_env module~leaplagrangian->mpi_f08 module~leaplagrangian->module~leapblock module~leaplagrangian->module~leapio module~leaplagrangian->module~leapkinds module~leaplagrangian->module~leapparallel module~leaplagrangian->module~leapparser module~leaplagrangian->module~leaputils module~leapmonitor->module~leapkinds module~leapmonitor->module~leapparallel module~leapmonitor->module~leaputils module~leapparallel->mpi_f08 module~leapparallel->module~leapkinds module~leapparallel->module~leapparser module~leapparser->module~leapkinds 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~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~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~leapbc->mpi_f08 module~leapbc->module~leapblock module~leapbc->module~leapeulerian module~leapbc->module~leapkinds module~leapbc->module~leapparallel module~leapbc->module~leaputils 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_mpi->mpi_f08 module~leapio_mpi->module~leapblock module~leapio_mpi->module~leapkinds module~leapio_mpi->module~leapparallel module~leapio_silo->mpi_f08 module~leapio_silo->module~leapblock module~leapio_silo->module~leapkinds module~leapio_silo->module~leapparallel module~leapio_silo->module~leaputils module~leaputils->mpi_f08 module~leaputils->module~leapkinds module~leaphypre->mpi_f08 module~leaphypre->module~leapblock module~leaphypre->module~leapeulerian module~leaphypre->module~leapkinds module~leaphypre->module~leapparallel iso_c_binding iso_c_binding module~leaphypre->iso_c_binding

Derived Types

type ::  nga_part_obj

Particle type as definied in NGA

Components

Type Visibility Attributes Name Initial
real(kind=WP), public, dimension(3) :: Acol

Particle collision force

real(kind=WP), public, dimension(3) :: Tcol

Particle collision torque

real(kind=WP), public :: d

diameter

real(kind=WP), public :: dt

time step size

integer, public :: i

nearest cell

integer(kind=leapI8), public :: id

Identifying number (inactive if <0)

integer, public :: j

nearest cell

integer, public :: k

nearest cell

integer, public :: stop

control parameter

real(kind=WP), public :: u

velocity

real(kind=WP), public :: v

velocity

real(kind=WP), public :: w

velocity

real(kind=WP), public :: wx

angular velocity

real(kind=WP), public :: wy

angular velocity

real(kind=WP), public :: wz

angular velocity

real(kind=WP), public :: x

position

real(kind=WP), public :: y

position

real(kind=WP), public :: z

position

type ::  ngapart_obj

Components

Type Visibility Attributes Name Initial
type(MPI_Info), public :: MPI_INFO

MPI info

integer, public :: MPI_SIZE

MPI size of a NGA particle

type(MPI_DATATYPE), public :: MPI_TYPE

MPI variable type of a NGA particle

integer, public :: count

Total count of particles in file

real(kind=leapDP), public :: dt

Time step in file

type(MPI_File), public :: fid

File identifier

character(len=str64), public :: filename

File to read/write

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

Associated parallel structure

real(kind=leapDP), public :: time

Time in file

Type-Bound Procedures

procedure, public :: Close => ngapart_Close
procedure, public :: CreateMPIType => ngapart_CreateMPIType
procedure, public :: Finalize => ngapart_Final
procedure, public :: GetAttributes => ngapart_GetAttributes
procedure, public :: Initialize => ngapart_Init
procedure, public :: Open => ngapart_Open
procedure, public :: Read => ngapart_Read

Subroutines

subroutine ngapart_Close(this)

Close file with MPI

Arguments

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

NGApart object

subroutine ngapart_CreateMPIType(this)

Define MPI Type and size for a NGA particle

Arguments

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

NGApart object

subroutine ngapart_Final(this)

Finalize structure

Arguments

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

NGApart object

subroutine ngapart_GetAttributes(this)

Read file attributes

Arguments

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

NGApart object

subroutine ngapart_Init(this, filename, access_flag, parallel)

Initialize structuree

Arguments

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

NGApart object

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

File to read/write

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

File access mode

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

Parallel structure

subroutine ngapart_Open(this, flag)

Open raw NGA part file

Arguments

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

NGApart object

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

File access mode

subroutine ngapart_Read(this, pp)

Read NGA particles, convert and store them in LEAP particle structure

Arguments

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

NGApart object

class(particle_set), intent(inout) :: pp

LEAP point-particle set


Module Subroutines

module subroutine particle_set_ReadNGA(this, iter, time)

Read particle data from file in parallel

Arguments

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

Lagrangian array to dump

integer, intent(out) :: iter

Iteration at write

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

Time at write