All Classes Files Functions Variables Pages
mod_snapshot_volume Module Reference

This module contains subroutines to compute and write snapshots of a mesh composed by hexahedron elements (VTK XML formats).

Public Member Functions

subroutine, public init_snapshot_volume ()
 This subroutine intializes the VTK mesh used for volume snapshots by calling 'get_efi_hexa' and 'init_vtk_mesh'.
 
subroutine, public write_snapshot_volume ()
 This subroutine manages output format for volume snapshot. For now, only VTK format is available. Each cpu writes its own part of the mesh.
 
subroutine, public write_snapshot_volume_vtk (fname, gll_var_x, name_var_x, gll_var_y, name_var_y, gll_var_z, name_var_z)
 This subroutine writes volume snapshot in a VTK XML file that contains a maximum of three vectors. More...
 
subroutine, public write_collection_vtk_vol ()
 This subroutine selects which ParaView collection files should be written (displacement, velocity and/or acceleration collections) depending on value of variables mod_global_variables::lg_snapshot_volume_displacement, mod_global_variables::lg_snapshot_volume_velocity and mod_global_variables::lg_snapshot_volume_acceleration.
 

Private Member Functions

subroutine, private get_efi_hexa (efi_hexa, efi_nhexa, xmin, xmax, ymin, ymax, zmin, zmax)
 This subroutine finds and stores the number of EFISPEC's hexahedron elements used for generating VTK mesh. More...
 
subroutine, private init_vtk_mesh (efi_hexa, efi_hexa_gll_glonum, vtk_hexa_conn, vtk_node_x, vtk_node_y, vtk_node_z, vtk_node_gll_glonum, vtk_cell_type, vtk_offset, vtk_nhexa, vtk_nnode)
 This subroutines manages the generation of a VTK mesh from spectral elements GLL nodes. More...
 
subroutine, private init_vtk_node (hexa, nhexa, efi_hexa_gll_glonum, gll, ngll, ngll_unique)
 This subroutine finds which GLL nodes to use for generating a VTK mesh. More...
 
subroutine, private init_vtk_node_numbering (node, gll, nnode, ngll)
 This subroutine generates i) VTK nodes' numbering from 0 to n-1 and ii) indirection array from VTK's geometric nodes to EFISPEC's GLL nodes. More...
 
subroutine, private init_vtk_hexa_connectivity (hexa, efi_nhexa, node, ngll, efi_hexa_gll_glonum, vtk_hexa, vtk_nhexa)
 This subroutine creates the connectivity array for defining VTK hexahedron elements from VTK geometric nodes. More...
 
subroutine, private write_medium ()
 This subroutine prepares the arrays for writing elastic properties of the medium.
 
subroutine, private collection_vtk_volume (varname)
 This subroutine write Paraview collection file *.pvd of VTK XML volume snapshot files *.vtu. More...
 

Detailed Description

Definition at line 127 of file module_snapshot_volume.f90.

Member Function/Subroutine Documentation

subroutine, private mod_snapshot_volume::collection_vtk_volume ( character(len=*), intent(in)  varname)
private
Parameters
varname: variable name

Definition at line 953 of file module_snapshot_volume.f90.

Referenced by write_collection_vtk_vol().

subroutine, private mod_snapshot_volume::get_efi_hexa ( integer, dimension(:), intent(out), allocatable  efi_hexa,
integer, intent(in)  efi_nhexa,
real, intent(in)  xmin,
real, intent(in)  xmax,
real, intent(in)  ymin,
real, intent(in)  ymax,
real, intent(in)  zmin,
real, intent(in)  zmax 
)
private
Returns
efi_hexa : EFISPEC's hexahedron elements used for generating VTK mesh
Parameters
efi_hexa: EFISPEC's hexahedron elements used for generating VTK mesh
efi_nhexa: number of hexahedron elements in EFISPEC mesh
xmin: minimal \(x\)-coordinate of the box of volume snapshot
xmax: maximal \(x\)-coordinate of the box of volume snapshot
ymin: minimal \(y\)-coordinate of the box of volume snapshot
ymax: maximal \(y\)-coordinate of the box of volume snapshot
zmin: minimal \(z\)-coordinate of the box of volume snapshot
zmax: maximal \(z\)-coordinate of the box of volume snapshot

Definition at line 228 of file module_snapshot_volume.f90.

References mod_coordinate::compute_hexa_point_coord().

Referenced by init_snapshot_volume().

Here is the call graph for this function:

subroutine, private mod_snapshot_volume::init_vtk_hexa_connectivity ( integer, dimension(efi_nhexa), intent(in)  hexa,
integer, intent(in)  efi_nhexa,
integer, dimension(ngll), intent(in)  node,
integer, intent(in)  ngll,
integer, dimension(ig_ngll,ig_ngll,ig_ngll,ig_nhexa), intent(in)  efi_hexa_gll_glonum,
integer, dimension(:), intent(out), allocatable  vtk_hexa,
integer, intent(out)  vtk_nhexa 
)
private
Parameters
hexa: list of EFISPEC hexahedron elements used for generating VTK mesh
efi_nhexa: total number of element in array 'hexa'
node: VTK geometric nodes
ngll: total number of unique GLL nodes in EFISPEC mesh
efi_hexa_gll_glonum: EFISPEC indirection array from local to global GLL nodes numbering
vtk_hexa: connectivity array for defining VTK hexahedron elements from VTK geometric nodes
vtk_nhexa: total number of VTK hexahedron elements
Returns
vtk_hexa : connectivity array for defining VTK hexahedron elements from VTK geometric nodes
vtk_nhexa : total number of VTK hexahedron elements

Definition at line 570 of file module_snapshot_volume.f90.

Referenced by init_vtk_mesh().

subroutine, private mod_snapshot_volume::init_vtk_mesh ( integer, dimension(:), intent(in)  efi_hexa,
integer, dimension(ig_ngll,ig_ngll,ig_ngll,ig_nhexa), intent(in)  efi_hexa_gll_glonum,
integer, dimension(:), intent(out), allocatable  vtk_hexa_conn,
real, dimension(:), intent(out), allocatable  vtk_node_x,
real, dimension(:), intent(out), allocatable  vtk_node_y,
real, dimension(:), intent(out), allocatable  vtk_node_z,
integer, dimension(:), intent(out), allocatable  vtk_node_gll_glonum,
integer(kind=1), dimension(:), intent(out), allocatable  vtk_cell_type,
integer, dimension(:), intent(out), allocatable  vtk_offset,
integer, intent(out)  vtk_nhexa,
integer, intent(out)  vtk_nnode 
)
private
Parameters
efi_hexa: EFISPEC hexahedron elements whose GLL nodes will be used to generate a VTK mesh composed by 8-node hexahedron elements
efi_hexa_gll_glonum: EFISPEC indirection array from local to global GLL nodes numbering
vtk_hexa_conn: VTK hexahedron elements connectivity array
vtk_node_gll_glonum: VTK indirection array from VTK's geometric nodes to EFISPEC's GLL nodes
vtk_cell_type: VTK cell type
vtk_offset: VTK offset array
vtk_node_x: \(x\)-coordinate of VTK mesh nodes
vtk_node_y: \(y\)-coordinate of VTK mesh nodes
vtk_node_z: \(z\)-coordinate of VTK mesh nodes
vtk_nhexa: number of hexahadron element in VTK mesh
vtk_nnode: number of geometric nodes in VTK mesh
Returns
vtk_hexa_conn : VTK hexahedron elements connectivity array
vtk_node_gll_glonum : VTK indirection array from VTK's geometric nodes to EFISPEC's GLL nodes
vtk_cell_type : VTK cell type
vtk_offset : VTK offset array
vtk_node_x : \(x\)-coordinate of VTK mesh nodes
vtk_node_y : \(y\)-coordinate of VTK mesh nodes
vtk_node_z : \(z\)-coordinate of VTK mesh nodes
vtk_nhexa : number of hexahadron element in VTK mesh
vtk_nnode : number of geometric nodes in VTK mesh

Definition at line 328 of file module_snapshot_volume.f90.

References init_vtk_hexa_connectivity(), init_vtk_node(), and init_vtk_node_numbering().

Referenced by init_snapshot_volume().

Here is the call graph for this function:

subroutine, private mod_snapshot_volume::init_vtk_node ( integer, dimension(nhexa), intent(in)  hexa,
integer, intent(in)  nhexa,
integer, dimension(ig_ngll,ig_ngll,ig_ngll,ig_nhexa), intent(in)  efi_hexa_gll_glonum,
integer, dimension(ngll), intent(out)  gll,
integer, intent(in)  ngll,
integer, intent(out)  ngll_unique 
)
private
Parameters
hexa: EFISPEC hexahedron elements used for
nhexa: number of EFISPEC hexahedron elements
efi_hexa_gll_glonum: EFISPEC indirection array from local to global GLL nodes numbering
ngll: total number of unique GLL nodes in EFISPEC mesh
gll: GLL nodes used for generating VTK nodes
ngll_unique: total number of unique GLL nodes used for generating VTK nodes
Returns
gll : GLL nodes used for generating VTK nodes
ngll_unique : total number of unique GLL nodes used for generating VTK nodes

Definition at line 437 of file module_snapshot_volume.f90.

Referenced by init_vtk_mesh().

subroutine, private mod_snapshot_volume::init_vtk_node_numbering ( integer, dimension(ngll), intent(out)  node,
integer, dimension(:), intent(out), allocatable  gll,
integer, intent(in)  nnode,
integer, intent(in)  ngll 
)
private
Parameters
node: VTK nodes with numbering from 0 to nnode-1
gll: VTK indirection array from VTK's geometric nodes to EFISPEC's GLL nodes
nnode: total number of unique geometric nodes in VTK mesh
ngll: total number of unique GLL nodes in EFISPEC mesh
Returns
node : VTK nodes with numbering from 0 to nnode-1
gll : VTK indirection array from VTK's geometric nodes to EFISPEC's GLL nodes

Definition at line 512 of file module_snapshot_volume.f90.

Referenced by init_vtk_mesh().

subroutine, public mod_snapshot_volume::write_snapshot_volume_vtk ( character(len=255), intent(in)  fname,
real, dimension(ig_ngll_total), intent(in), optional  gll_var_x,
character(len=*), intent(in), optional  name_var_x,
real, dimension(ig_ngll_total), intent(in), optional  gll_var_y,
character(len=*), intent(in), optional  name_var_y,
real, dimension(ig_ngll_total), intent(in), optional  gll_var_z,
character(len=*), intent(in), optional  name_var_z 
)
Parameters
fname: VTK file name
gll_var_x: vector number 1 to be written in VTK file. The vector must be stored in an array ordered by unique GLL nodes number.
name_var_x: name of the variable in vector number 1.
gll_var_y: vector number 2 to be written in VTK file. The vector must be stored in an array ordered by unique GLL nodes number.
name_var_y: name of the variable in vector number 2.
gll_var_z: vector number 3 to be written in VTK file. The vector must be stored in an array ordered by unique GLL nodes number.
name_var_z: name of the variable in vector number 3.

Definition at line 725 of file module_snapshot_volume.f90.

References mod_vtk_io::vtk_con_xml(), mod_vtk_io::vtk_dat_xml(), mod_vtk_io::vtk_end_xml(), and mod_vtk_io::vtk_ini_xml().

Referenced by write_medium(), and write_snapshot_volume().

Here is the call graph for this function:


The documentation for this module was generated from the following file: