Skip to main content

Initiate

Inheritence

This method is inherited from the AbstractMesh class.

Initiate

Initiate an instance of Mesh.

Interface

INTERFACE
MODULE SUBROUTINE obj_Initiate(obj, hdf5, group)
CLASS(Mesh_), INTENT(INOUT) :: obj
!! mesh object
TYPE(HDF5File_), INTENT(INOUT) :: hdf5
!! Mesh file in hdf5 file format
CHARACTER(*), INTENT(IN) :: group
!! location in HDF5 file
END SUBROUTINE obj_Initiate
END INTERFACE

Examples

Converting mesh from Gmsh to easifem format

Click here to see example

This example shows how to convert a mesh from Gmsh format to HDF5 format which is necessary to initiate the FEMesh object.

PROGRAM main
USE MSHFile_Class
USE HDF5File_Class
USE GlobalData

IMPLICIT NONE

TYPE(MSHFile_) :: mshFile
TYPE(HDF5File_) :: hdf5file
CHARACTER(*), PARAMETER :: filename = "./meshdata/small_tri3_mesh"

CALL mshFile%Initiate(filename=filename//".msh", STATUS="OLD", ACTION="READ")

CALL mshFile%OPEN()

CALL mshFile%READ()

CALL hdf5file%Initiate(filename//".h5", MODE="NEW")

CALL hdf5file%OPEN()

CALL mshFile%Export(hdf5=hdf5file, group="")

CALL mshFile%DEALLOCATE()
CALL hdf5file%DEALLOCATE()

END PROGRAM main

Initiate 2D mesh

Examples

Read a two dimensional mesh of quadrangle elements.

!> author: Vikas Sharma, Ph. D.
! date: 2025-05-30
! summary: Read a 2D quadrangle mesh with two regions from an HDF5 file

PROGRAM main
USE FEMesh_Class, only: FEMesh_
USE HDF5File_Class, only: HDF5File_
USE GlobalData, ONLY: I4B
USE Test_Method, ONLY: OK

IMPLICIT NONE

TYPE(FEMesh_) :: obj
TYPE(HDF5File_) :: meshfile
CHARACTER(LEN=*), PARAMETER :: filename = &
"./meshdata/very_small_quad4_mesh_two_region.h5"
INTEGER(I4B), PARAMETER :: nsd = 2
INTEGER(I4B), PARAMETER :: entities(2) = [1, 2]

CALL meshfile%Initiate(FileName=filename, MODE="READ")

CALL meshfile%OPEN()

CALL obj%Initiate(hdf5=meshfile, dim=nsd, entities=entities)

CALL OK(.TRUE., "Initiate")

CALL obj%DEALLOCATE()
CALL meshfile%DEALLOCATE()
END PROGRAM main

Initaite 3D mesh

Examples

In this example, we will read a 3D mesh of hexahedral elements with two regions.

PROGRAM main
USE FEMesh_Class
USE HDF5File_Class
USE GlobalData
USE Test_Method

IMPLICIT NONE

TYPE(FEMesh_) :: obj
TYPE(HDF5File_) :: meshfile

CHARACTER(LEN=*), PARAMETER :: filename = &
"./meshdata/very_small_hexa8_mesh_two_region.h5"
INTEGER(I4B), PARAMETER :: nsd = 3

CALL meshfile%Initiate(FileName=filename, MODE="READ")

CALL meshfile%OPEN()

CALL obj%Initiate(hdf5=meshfile, dim=nsd)
CALL obj%DisplayMeshInfo("Mesh information: ")

CALL OK(.TRUE., "Initiate_4")

CALL obj%DEALLOCATE()
CALL meshfile%DEALLOCATE()
END PROGRAM main

Additional examples

Read a 2D mesh of quadrangle elements with two regions.

!> author: Vikas Sharma, Ph. D.
! date: 2025-05-30
! summary: Read a 2D quadrangle mesh with two regions from an HDF5 file
!
!# Introduction
!
! This program reads a 2D quadrangle mesh with two regions from an HDF5 file.
! It will read all the entities of a given dimension (nsd) from the file.

PROGRAM main
USE FEMesh_Class
USE HDF5File_Class
USE GlobalData
USE Test_Method

IMPLICIT NONE
TYPE(FEMesh_) :: obj
TYPE(HDF5File_) :: meshfile

CHARACTER(LEN=*), PARAMETER :: filename = &
"./meshdata/very_small_quad4_mesh_two_region.h5"
INTEGER(I4B), PARAMETER :: nsd = 2

CALL meshfile%Initiate(FileName=filename, MODE="READ")

CALL meshfile%OPEN()

! Read all the entities of dim = nsd
CALL obj%Initiate(hdf5=meshfile, dim=nsd)
CALL obj%DisplayMeshInfo("Mesh information: ")

CALL OK(.TRUE., "Initiate")

! CALL obj%Display("")

CALL obj%DEALLOCATE()
CALL meshfile%DEALLOCATE()
END PROGRAM main