FEMDomain_ Derived Type

type, public :: FEMDomain_


Contents


Components

TypeVisibility AttributesNameInitial
type(Mesh_), public :: Mesh
type(MaterialProp_), public :: MaterialProp
type(Boundary_), public :: Boundary
type(ControlParameter_), public :: ControlPara
type(ShapeFunction_), public :: ShapeFunction
type(PhysicalField_), public, allocatable:: PhysicalField(:)
integer(kind=int32), public :: numoflayer =0
character(len=36), public :: uuid
character(len=36), public :: link(2)
character(len=70), public :: meshtype
real(kind=real64), public, allocatable:: scalar(:)
real(kind=real64), public, allocatable:: vector(:,:)
real(kind=real64), public, allocatable:: tensor(:,:,:)
real(kind=real64), public :: RealTime =1.0d0
integer(kind=int32), public :: NumOfDomain =1
character(len=200), public :: FilePath ="None"
character(len=200), public :: FileName ="None"
character(len=200), public :: Name ="None"
character(len=9), public :: Dtype ="None"
character(len=200), public :: SolverType ="None"
character(len=200), public :: Category1 ="None"
character(len=200), public :: Category2 ="None"
character(len=200), public :: Category3 ="None"
integer(kind=int32), public :: DomainID =1
integer(kind=int32), public :: timestep =1
integer(kind=int32), public :: NumberOfBoundaries =0
integer(kind=int32), public :: NumberOfMaterials =0
type(Meshp_), public, allocatable:: Meshes(:)
type(Materialp_), public, allocatable:: Materials(:)
type(Boundaryp_), public, allocatable:: Boundaries(:)

Type-Bound Procedures

procedure, public :: add => addFEMDomain

  • public subroutine addFEMDomain(obj, mesh, from, length, rot_x, rot_y, rot_z, x, y, z, dx, dy, dz)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    class(Mesh_), intent(inout), optional :: mesh
    integer(kind=int32), intent(in), optional :: from
    real(kind=real64), intent(in), optional :: length
    real(kind=real64), intent(in), optional :: rot_x
    real(kind=real64), intent(in), optional :: rot_y
    real(kind=real64), intent(in), optional :: rot_z
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    real(kind=real64), intent(in), optional :: dx
    real(kind=real64), intent(in), optional :: dy
    real(kind=real64), intent(in), optional :: dz

procedure, public :: addNBC => AddNBCFEMDomain

  • public subroutine AddNBCFEMDomain(obj, NodID, DimID, Val, FastMode)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: NodID
    integer(kind=int32), intent(in) :: DimID
    real(kind=real64), intent(in) :: Val
    logical, intent(in), optional :: FastMode

procedure, public :: importLayer => importLayerFEMDomain

  • public subroutine importLayerFEMDomain(obj, name, id, scalar, vector, tensor)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: name
    integer(kind=int32), intent(in), optional :: id
    real(kind=real64), intent(in), optional :: scalar(:)
    real(kind=real64), intent(in), optional :: vector(:,:)
    real(kind=real64), intent(in), optional :: tensor(:,:,:)

procedure, public, pass :: addLayerFEMDomain

  • public subroutine addLayerFEMDomain(obj, name, attribute, datastyle, vectorrank, tensorrank1, tensorrank2)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: attribute
    character(len=*), intent(in) :: datastyle
    integer, intent(in), optional :: vectorrank
    integer, intent(in), optional :: tensorrank1
    integer, intent(in), optional :: tensorrank2

procedure, public, pass :: addLayerFEMDomainScalar

  • public subroutine addLayerFEMDomainScalar(obj, name, scalar)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in) :: scalar(:)

procedure, public, pass :: addLayerFEMDomainVector

  • public subroutine addLayerFEMDomainVector(obj, name, vector)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in) :: vector(:,:)

procedure, public, pass :: addLayerFEMDomainTensor => addLayerFEMDomaintensor

  • public subroutine addLayerFEMDomaintensor(obj, name, tensor)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in) :: tensor(:,:,:)
  • public subroutine addLayerFEMDomainScalar(obj, name, scalar)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in) :: scalar(:)
  • public subroutine addLayerFEMDomain(obj, name, attribute, datastyle, vectorrank, tensorrank1, tensorrank2)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: attribute
    character(len=*), intent(in) :: datastyle
    integer, intent(in), optional :: vectorrank
    integer, intent(in), optional :: tensorrank1
    integer, intent(in), optional :: tensorrank2
  • public subroutine addLayerFEMDomainVector(obj, name, vector)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in) :: vector(:,:)
  • public subroutine addLayerFEMDomaintensor(obj, name, tensor)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in) :: tensor(:,:,:)

procedure, public :: showLayer => showLayerFEMDomain

procedure, public :: searchLayer => searchLayerFEMDomain

  • public function searchLayerFEMDomain(obj, name, id) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: name
    integer(kind=int32), intent(in), optional :: id

    Return Value logical

procedure, public :: addDBoundCondition => AddDBoundCondition

  • public subroutine AddDBoundCondition(obj, xmin, xmax, ymin, ymax, zmin, zmax, tmin, tmax, valx, valy, valz, val, val_id, NumOfValPerNod, Mode2D)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: xmin
    real(kind=real64), intent(in), optional :: xmax
    real(kind=real64), intent(in), optional :: ymin
    real(kind=real64), intent(in), optional :: ymax
    real(kind=real64), intent(in), optional :: zmin
    real(kind=real64), intent(in), optional :: zmax
    real(kind=real64), intent(in), optional :: tmin
    real(kind=real64), intent(in), optional :: tmax
    real(kind=real64), intent(in), optional :: valx
    real(kind=real64), intent(in), optional :: valy
    real(kind=real64), intent(in), optional :: valz
    real(kind=real64), intent(in), optional :: val
    integer(kind=int32), intent(in), optional :: val_id
    integer(kind=int32), intent(in), optional :: NumOfValPerNod
    logical, intent(in), optional :: Mode2D

procedure, public :: addNBoundCondition => AddNBoundCondition

  • public subroutine AddNBoundCondition(obj, xmin, xmax, ymin, ymax, zmin, zmax, tmin, tmax, valx, valy, valz, val, val_id, NumOfValPerNod, Mode2D)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: xmin
    real(kind=real64), intent(in), optional :: xmax
    real(kind=real64), intent(in), optional :: ymin
    real(kind=real64), intent(in), optional :: ymax
    real(kind=real64), intent(in), optional :: zmin
    real(kind=real64), intent(in), optional :: zmax
    real(kind=real64), intent(in), optional :: tmin
    real(kind=real64), intent(in), optional :: tmax
    real(kind=real64), intent(in), optional :: valx
    real(kind=real64), intent(in), optional :: valy
    real(kind=real64), intent(in), optional :: valz
    real(kind=real64), intent(in), optional :: val
    integer(kind=int32), intent(in), optional :: val_id
    integer(kind=int32), intent(in), optional :: NumOfValPerNod
    logical, intent(in), optional :: Mode2D

procedure, public :: addTBoundCondition => AddTBoundCondition

  • public subroutine AddTBoundCondition(obj, xmin, xmax, ymin, ymax, zmin, zmax, tmin, tmax, valx, valy, valz, val, val_id, NumOfValPerNod, Mode2D)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: xmin
    real(kind=real64), intent(in), optional :: xmax
    real(kind=real64), intent(in), optional :: ymin
    real(kind=real64), intent(in), optional :: ymax
    real(kind=real64), intent(in), optional :: zmin
    real(kind=real64), intent(in), optional :: zmax
    real(kind=real64), intent(in), optional :: tmin
    real(kind=real64), intent(in), optional :: tmax
    real(kind=real64), intent(in), optional :: valx
    real(kind=real64), intent(in), optional :: valy
    real(kind=real64), intent(in), optional :: valz
    real(kind=real64), intent(in), optional :: val
    integer(kind=int32), intent(in), optional :: val_id
    integer(kind=int32), intent(in), optional :: NumOfValPerNod
    logical, intent(in), optional :: Mode2D

procedure, public :: addMaterialID => AddMaterialID

  • public subroutine AddMaterialID(obj, xmin, xmax, ymin, ymax, zmin, zmax, tmin, tmax, valx, valy, valz, MaterialID, Mode2D)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: xmin
    real(kind=real64), intent(in), optional :: xmax
    real(kind=real64), intent(in), optional :: ymin
    real(kind=real64), intent(in), optional :: ymax
    real(kind=real64), intent(in), optional :: zmin
    real(kind=real64), intent(in), optional :: zmax
    real(kind=real64), intent(in), optional :: tmin
    real(kind=real64), intent(in), optional :: tmax
    real(kind=real64), intent(in), optional :: valx
    real(kind=real64), intent(in), optional :: valy
    real(kind=real64), intent(in), optional :: valz
    integer(kind=int32), intent(in), optional :: MaterialID
    logical, intent(in), optional :: Mode2D

procedure, public :: assign => ImportFEMDomain

  • public subroutine ImportFEMDomain(obj, OptionalFileFormat, OptionalProjectName, FileHandle, Mesh, Boundaries, Boundary, Materials, Material, NumberOfBoundaries, BoundaryID, NumberOfMaterials, MaterialID, node, element, materialinfo, dirichlet, neumann, file)

    print , "Project : ",ProjectName print , "is Exported as : ",FileFormat," format" print *, "File Name is : ",FileName

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=4), intent(in), optional :: OptionalFileFormat
    character(len=*), intent(in), optional :: OptionalProjectName
    integer, intent(in), optional :: FileHandle
    type(Mesh_), intent(in), optional :: Mesh
    logical, intent(in), optional :: Boundaries
    type(Boundary_), intent(in), optional :: Boundary
    logical, intent(in), optional :: Materials
    type(MaterialProp_), intent(in), optional :: Material
    integer, intent(in), optional :: NumberOfBoundaries
    integer, intent(in), optional :: BoundaryID
    integer, intent(in), optional :: NumberOfMaterials
    integer, intent(in), optional :: MaterialID
    logical, intent(in), optional :: node
    logical, intent(in), optional :: element
    logical, intent(in), optional :: materialinfo
    logical, intent(in), optional :: dirichlet
    logical, intent(in), optional :: neumann
    character(len=*), intent(in), optional :: file

procedure, public :: allconnectivity => allconnectivityFEMDomain

  • public function allconnectivityFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value integer(kind=int32), allocatable, (:,:)

procedure, public :: bake => bakeFEMDomain

  • public recursive subroutine bakeFEMDomain(obj, template, templateFile, NodalDOF, NumOfMaterialPara, Tol, SimMode, ItrTol, Timestep)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: template
    character(len=*), intent(in), optional :: templateFile
    integer(kind=int32), intent(in), optional :: NodalDOF
    integer(kind=int32), intent(in), optional :: NumOfMaterialPara
    real(kind=real64), intent(in), optional :: Tol
    integer(kind=int32), intent(in), optional :: SimMode
    integer(kind=int32), intent(in), optional :: ItrTol
    integer(kind=int32), intent(in), optional :: Timestep

procedure, public :: bakeMaterials => bakeMaterialsFEMDomain

  • public subroutine bakeMaterialsFEMDomain(obj, NumOfMatPara)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: NumOfMatPara

procedure, public :: bakeDBoundaries => bakeDBoundariesFEMDomain

  • public subroutine bakeDBoundariesFEMDomain(obj, NodeDOF)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: NodeDOF

procedure, public :: bakeNBoundaries => bakeNBoundariesFEMDomain

  • public subroutine bakeNBoundariesFEMDomain(obj, NodeDOF)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: NodeDOF

procedure, public :: bakeTBoundaries => bakeTBoundariesFEMDomain

  • public subroutine bakeTBoundariesFEMDomain(obj, NodeDOF)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: NodeDOF

procedure, public :: checkConnectivity => CheckConnedctivityFEMDomain

procedure, public :: connectivity => connectivityFEMDomain

  • public function connectivityFEMDomain(obj, ElementID) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in) :: ElementID

    Return Value integer(kind=int32), allocatable, (:)

procedure, public :: copy => copyFEMDomain

  • public subroutine copyFEMDomain(obj, OriginalObj, onlyMesh)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    class(FEMDomain_), intent(in) :: OriginalObj
    logical, intent(in), optional :: onlyMesh

procedure, public :: convertMeshType => convertMeshTypeFEMDomain

  • public subroutine convertMeshTypeFEMDomain(obj, Option)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: Option

procedure, public :: contactdetect => contactdetectFEMDomain

  • public subroutine contactdetectFEMDomain(obj1, obj2, ContactModel)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj1
    class(FEMDomain_), intent(inout) :: obj2
    character(len=*), intent(in), optional :: ContactModel

procedure, public :: centerPosition => centerPositionFEMDomain

  • public function centerPositionFEMDomain(obj, ElementID) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in) :: ElementID

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: create => createFEMDomain

  • public subroutine createFEMDomain(obj, meshtype, Name, x_num, y_num, z_num, x_len, y_len, z_len, Le, Lh, Dr, thickness, division, top, margin, inclineRate, shaperatio, master, slave, x, y, z, dx, dy, dz, coordinate, species, SoyWidthRatio)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: meshtype
    character(len=*), intent(in), optional :: Name
    integer(kind=int32), intent(in), optional :: x_num
    integer(kind=int32), intent(in), optional :: y_num
    integer(kind=int32), intent(in), optional :: z_num
    real(kind=real64), intent(in), optional :: x_len
    real(kind=real64), intent(in), optional :: y_len
    real(kind=real64), intent(in), optional :: z_len
    real(kind=real64), intent(in), optional :: Le
    real(kind=real64), intent(in), optional :: Lh
    real(kind=real64), intent(in), optional :: Dr
    real(kind=real64), intent(in), optional :: thickness
    integer(kind=int32), intent(in), optional :: division
    real(kind=real64), intent(in), optional :: top
    real(kind=real64), intent(in), optional :: margin
    real(kind=real64), intent(in), optional :: inclineRate
    real(kind=real64), intent(in), optional :: shaperatio
    type(FEMDomain_), intent(inout), optional :: master
    type(FEMDomain_), intent(inout), optional :: slave
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    real(kind=real64), intent(in), optional :: dx
    real(kind=real64), intent(in), optional :: dy
    real(kind=real64), intent(in), optional :: dz
    real(kind=real64), intent(in), optional :: coordinate(:,:)
    integer(kind=int32), intent(in), optional :: species
    real(kind=real64), intent(in), optional :: SoyWidthRatio

procedure, public :: delete => DeallocateFEMDomain

procedure, public :: display => displayFEMDomain

  • public subroutine displayFEMDomain(obj, path, name, extention, field)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: path
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: extention
    real(kind=real64), intent(in), optional :: field(:)

procedure, public :: divide => divideFEMDomain

  • public function divideFEMDomain(obj, n) result(FEMDomains)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: n

    Return Value type(FEMDomain_), allocatable, (:)

procedure, public :: Delaunay3D => Delaunay3DFEMDomain

procedure, public :: Delaunay2D => Delaunay2DFEMDomain

procedure, public :: export => ExportFEMDomain

  • public subroutine ExportFEMDomain(obj, OptionalFileFormat, OptionalProjectName, FileHandle, SolverType, MeshDimension, FileName, Name, regacy, with, path, extention, step, FieldValue, restart)

    print , "Project : ",ProjectName print , "is Exported as : ",FileFormat," format" print *, "File Name is : ",iFileName

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: OptionalFileFormat
    character(len=*), intent(in), optional :: OptionalProjectName
    integer(kind=int32), intent(in), optional :: FileHandle
    character(len=*), intent(in), optional :: SolverType
    integer(kind=int32), intent(in), optional :: MeshDimension
    character(len=*), intent(in), optional :: FileName
    character(len=*), intent(in), optional :: Name
    logical, intent(in), optional :: regacy
    class(FEMDomain_), intent(inout), optional :: with
    character(len=*), intent(in), optional :: path
    character(len=*), intent(in), optional :: extention
    integer(kind=int32), intent(in), optional :: step
    real(kind=real64), intent(in), optional :: FieldValue(:,:)
    logical, intent(in), optional :: restart

procedure, public :: edit => editFEMDomain

  • public subroutine editFEMDomain(obj, x, altitude)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: x(:)
    real(kind=real64), intent(in), optional :: altitude(:)

procedure, public :: field => fieldFEMDomain

  • public subroutine fieldFEMDomain(obj, scalar, vector, tensor)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: scalar(:)
    real(kind=real64), intent(in), optional :: vector(:,:)
    real(kind=real64), intent(in), optional :: tensor(:,:,:)

procedure, public :: gmshPlotMesh => GmshPlotMesh

  • public subroutine GmshPlotMesh(obj, OptionalContorName, OptionalAbb, OptionalStep, Name, withNeumannBC, withDirichletBC, onlyNeumannBC, onlyDirichletBC, asMsh, withMaterial, Tag, timestep, field)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character, intent(in), optional :: OptionalContorName*30
    character, intent(in), optional :: OptionalAbb*6
    integer(kind=int32), intent(in), optional :: OptionalStep
    character(len=*), intent(in), optional :: Name
    logical, intent(in), optional :: withNeumannBC
    logical, intent(in), optional :: withDirichletBC
    logical, intent(in), optional :: onlyNeumannBC
    logical, intent(in), optional :: onlyDirichletBC
    logical, intent(in), optional :: asMsh
    logical, intent(in), optional :: withMaterial
    character(len=*), intent(in), optional :: Tag
    integer(kind=int32), intent(in), optional :: timestep
    real(kind=real64), intent(in), optional allocatable:: field(:)

procedure, public :: gmsh => GmshPlotMesh

  • public subroutine GmshPlotMesh(obj, OptionalContorName, OptionalAbb, OptionalStep, Name, withNeumannBC, withDirichletBC, onlyNeumannBC, onlyDirichletBC, asMsh, withMaterial, Tag, timestep, field)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character, intent(in), optional :: OptionalContorName*30
    character, intent(in), optional :: OptionalAbb*6
    integer(kind=int32), intent(in), optional :: OptionalStep
    character(len=*), intent(in), optional :: Name
    logical, intent(in), optional :: withNeumannBC
    logical, intent(in), optional :: withDirichletBC
    logical, intent(in), optional :: onlyNeumannBC
    logical, intent(in), optional :: onlyDirichletBC
    logical, intent(in), optional :: asMsh
    logical, intent(in), optional :: withMaterial
    character(len=*), intent(in), optional :: Tag
    integer(kind=int32), intent(in), optional :: timestep
    real(kind=real64), intent(in), optional allocatable:: field(:)

procedure, public :: gmshPlotContour => GmshPlotContour

  • public subroutine GmshPlotContour(obj, gp_value, OptionalContorName, OptionalAbb, OptionalStep, Name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(in) :: gp_value(:,:)
    character, intent(in), optional :: OptionalContorName*30
    character, intent(in), optional :: OptionalAbb*6
    integer(kind=int32), intent(in), optional :: OptionalStep
    character(len=*), intent(in), optional :: Name

procedure, public :: gmshPlotVector => GmshPlotVector

  • public subroutine GmshPlotVector(obj, Vector, Name, FieldName, Step, fh, withMsh, ElementWize, NodeWize, onlyDirichlet)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(in), optional :: Vector(:,:)
    character(len=*), intent(in), optional :: Name
    character(len=*), intent(in) :: FieldName
    integer(kind=int32), intent(in) :: Step
    integer(kind=int32), intent(in), optional :: fh
    logical, intent(in), optional :: withMsh
    logical, intent(in), optional :: ElementWize
    logical, intent(in), optional :: NodeWize
    logical, intent(in), optional :: onlyDirichlet

procedure, public :: gmshPlotContour2D => GmshPlotContour2D

  • public subroutine GmshPlotContour2D(obj, gp_value, OptionalContorName, OptionalAbb, OptionalStep, Name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(in) :: gp_value(:,:)
    character, intent(in), optional :: OptionalContorName*30
    character, intent(in), optional :: OptionalAbb*6
    integer(kind=int32), intent(in), optional :: OptionalStep
    character(len=*), intent(in), optional :: Name

procedure, public :: gnuplotPlotContour => GnuplotPlotContour

  • public subroutine GnuplotPlotContour(obj, gp_value, OptionalContorName, OptionalAbb, OptionalStep)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(in) :: gp_value(:,:)
    character, intent(in), optional :: OptionalContorName*30
    character, intent(in), optional :: OptionalAbb*6
    integer(kind=int32), intent(in), optional :: OptionalStep

procedure, public :: gnuplotExportStress => GnuplotExportStress

  • public subroutine GnuplotExportStress(obj, uvec, sigma, strain_measure, step)

    "Hydrostatic stress (kPa)" ""Deviatoric stress (kPa)" "Hydrostatic strain" "Deviatoric strain"

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(in) :: uvec(:)
    real(kind=real64), intent(in) :: sigma(:,:,:)
    real(kind=real64), intent(in) :: strain_measure(:,:,:)
    integer(kind=int32), intent(in) :: step

procedure, public :: getDBCVector => getDBCVectorFEMDomain

  • public subroutine getDBCVectorFEMDomain(obj, DBCvec)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(inout), allocatable:: DBCvec(:,:)

procedure, public :: getVolume => getVolumeFEMDomain

  • public recursive function getVolumeFEMDomain(obj, elem) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in), optional :: elem

    Return Value real(kind=real64)

procedure, public :: getJacobiMatrix => getJacobiMatrixFEMDomain

  • public function getJacobiMatrixFEMDomain(obj, elem) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: elem

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: getLayerID => getLayerIDFEMDomain

  • public function getLayerIDFEMDomain(obj, name) result(id)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name

    Return Value integer(kind=int32)

procedure, public :: getLayerAttribute => getLayerAttributeFEMDomain

  • public function getLayerAttributeFEMDomain(obj, name) result(id)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name

    Return Value integer(kind=int32)

procedure, public :: getLayerDataStyle => getLayerDataStyleFEMDomain

  • public function getLayerDataStyleFEMDomain(obj, name) result(id)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name

    Return Value integer(kind=int32)

procedure, public :: getShapeFunction => getShapeFunctionFEMDomain

  • public recursive function getShapeFunctionFEMDomain(obj, ElementID, GaussPointID, ReducedIntegration, position) result(sobj)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: ElementID
    integer(kind=int32), intent(in), optional :: GaussPointID
    logical, intent(in), optional :: ReducedIntegration
    real(kind=real64), intent(in), optional :: position(:)

    Return Value type(ShapeFunction_)

procedure, public :: getNearestNodeID => getNearestNodeIDFEMDomain

  • public function getNearestNodeIDFEMDomain(obj, x, y, z, except, exceptlist) result(node_id)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    integer(kind=int32), intent(in), optional :: except
    integer(kind=int32), intent(in), optional :: exceptlist(:)

    Return Value integer(kind=int32)

procedure, public :: getSurface => getSurfaceFEMDomain

procedure, public :: NodeID => NodeIDFEMDomain

  • public function NodeIDFEMDomain(obj, ElementID, LocalNodeID) result(NodeID)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: LocalNodeID

    Return Value integer(kind=int32)

procedure, public :: getNodeList => getNodeListFEMDomain

  • public function getNodeListFEMDomain(obj, BoundingBox, xmin, xmax, ymin, ymax, zmin, zmax) result(NodeList)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    type(FEMDomain_), intent(inout), optional :: BoundingBox
    real(kind=real64), intent(in), optional :: xmin
    real(kind=real64), intent(in), optional :: xmax
    real(kind=real64), intent(in), optional :: ymin
    real(kind=real64), intent(in), optional :: ymax
    real(kind=real64), intent(in), optional :: zmin
    real(kind=real64), intent(in), optional :: zmax

    Return Value integer(kind=int32), allocatable, (:)

procedure, public :: getElement => getElementFEMDOmain

  • public function getElementFEMDOmain(obj, ElementID) result(element)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in) :: ElementID

    Return Value type(FEMDomain_)

procedure, public :: getElementList => getElementListFEMDomain

  • public function getElementListFEMDomain(obj, BoundingBox, xmin, xmax, ymin, ymax, zmin, zmax, NodeID) result(ElementList)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    type(FEMDomain_), intent(inout), optional :: BoundingBox
    real(kind=real64), intent(in), optional :: xmin
    real(kind=real64), intent(in), optional :: xmax
    real(kind=real64), intent(in), optional :: ymin
    real(kind=real64), intent(in), optional :: ymax
    real(kind=real64), intent(in), optional :: zmin
    real(kind=real64), intent(in), optional :: zmax
    integer(kind=int32), intent(in), optional :: NodeID

    Return Value integer(kind=int32), allocatable, (:)

procedure, public :: getLocalCoordinate => getLocalCoordinateFEMDomain

  • public function getLocalCoordinateFEMDomain(Obj, ElementID, x, y, z) result(xi)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: Obj
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in) :: x
    real(kind=real64), intent(in) :: y
    real(kind=real64), intent(in) :: z

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: GlobalPositionOfGaussPoint => getGlobalPositionOfGaussPointFEMDomain

  • public function getGlobalPositionOfGaussPointFEMDomain(obj, ElementID, GaussPointID) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: GaussPointID

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: init => InitializeFEMDomain

  • public subroutine InitializeFEMDomain(obj, Default, FileName, simple)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    logical, intent(in), optional :: Default
    character(len=*), intent(in), optional :: FileName
    logical, intent(in), optional :: simple

procedure, public :: import => ImportFEMDomain

  • public subroutine ImportFEMDomain(obj, OptionalFileFormat, OptionalProjectName, FileHandle, Mesh, Boundaries, Boundary, Materials, Material, NumberOfBoundaries, BoundaryID, NumberOfMaterials, MaterialID, node, element, materialinfo, dirichlet, neumann, file)

    print , "Project : ",ProjectName print , "is Exported as : ",FileFormat," format" print *, "File Name is : ",FileName

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=4), intent(in), optional :: OptionalFileFormat
    character(len=*), intent(in), optional :: OptionalProjectName
    integer, intent(in), optional :: FileHandle
    type(Mesh_), intent(in), optional :: Mesh
    logical, intent(in), optional :: Boundaries
    type(Boundary_), intent(in), optional :: Boundary
    logical, intent(in), optional :: Materials
    type(MaterialProp_), intent(in), optional :: Material
    integer, intent(in), optional :: NumberOfBoundaries
    integer, intent(in), optional :: BoundaryID
    integer, intent(in), optional :: NumberOfMaterials
    integer, intent(in), optional :: MaterialID
    logical, intent(in), optional :: node
    logical, intent(in), optional :: element
    logical, intent(in), optional :: materialinfo
    logical, intent(in), optional :: dirichlet
    logical, intent(in), optional :: neumann
    character(len=*), intent(in), optional :: file

procedure, public :: importVTKFile => ImportVTKFileFEMDomain

  • public subroutine ImportVTKFileFEMDomain(Obj, name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: Obj
    character(len=*), intent(in) :: name

procedure, public :: importMesh => ImportMeshFEMDomain

  • public subroutine ImportMeshFEMDomain(obj, Mesh)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    class(Mesh_), intent(inout) :: Mesh

procedure, public :: importMaterials => ImportMaterialsFEMDomain

  • public subroutine ImportMaterialsFEMDomain(obj, Material, NumberOfMaterials, MaterialID)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    type(MaterialProp_), intent(in), target:: Material
    integer(kind=int32), intent(in), optional :: NumberOfMaterials
    integer(kind=int32), intent(in), optional :: MaterialID

procedure, public :: importBoundaries => ImportBoundariesFEMDomain

  • public subroutine ImportBoundariesFEMDomain(obj, Boundary, NumberOfBoundaries, BoundaryID)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    type(Boundary_), intent(in), target:: Boundary
    integer(kind=int32), intent(in), optional :: NumberOfBoundaries
    integer(kind=int32), intent(in), optional :: BoundaryID

procedure, public :: initDBC => InitDBC

  • public subroutine InitDBC(obj, NumOfValPerNod)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: NumOfValPerNod

procedure, public :: initNBC => InitNBC

  • public subroutine InitNBC(obj, NumOfValPerNod)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: NumOfValPerNod

procedure, public :: initTBC => InitTBC

  • public subroutine InitTBC(obj, NumOfValPerNod)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: NumOfValPerNod

procedure, public :: json => jsonFEMDomain

  • public subroutine jsonFEMDomain(obj, name, fh, endl)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    character(len=*), intent(in), optional :: name
    integer(kind=int32), intent(in), optional :: fh
    logical, intent(in), optional :: endl

procedure, public :: killElement => killElementFEMDomain

  • public subroutine killElementFEMDomain(obj, blacklist, flag)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: blacklist(:)
    integer(kind=int32), intent(in), optional :: flag

procedure, public :: length => lengthFEMDomain

  • public function lengthFEMDomain(obj) result(length)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value real(kind=real64) (3)

procedure, public :: meltingSkelton => MeltingSkeltonFEMDomain

procedure, public :: move => moveFEMDomain

  • public subroutine moveFEMDomain(obj, x, y, z, NodeList)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    integer(kind=int32), intent(in), optional :: NodeList(:)

procedure, public :: meshing => meshingFEMDomain

procedure, public :: merge => MergeFEMDomain

  • public subroutine MergeFEMDomain(inobj1, inobj2, outobj)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: inobj1
    class(FEMDomain_), intent(in) :: inobj2
    class(FEMDomain_), intent(out) :: outobj

procedure, public :: msh => mshFEMDomain

  • public recursive subroutine mshFEMDomain(obj, name, scalar, vector, tensor, step, fieldname, NodeList)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in), optional :: scalar(:,:)
    real(kind=real64), intent(in), optional :: vector(:,:)
    real(kind=real64), intent(in), optional :: tensor(:,:,:)
    integer(kind=int32), intent(in), optional :: step
    character(len=*), intent(in), optional :: fieldname
    integer(kind=int32), intent(in), optional :: NodeList(:)

procedure, public :: nn => nnFEMDomain

  • public function nnFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value integer(kind=int32)

procedure, public :: np => nnFEMDomain

  • public function nnFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value integer(kind=int32)

procedure, public :: nd => ndFEMDomain

  • public function ndFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value integer(kind=int32)

procedure, public :: ne => neFEMDomain

  • public function neFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value integer(kind=int32)

procedure, public :: nne => nneFEMDomain

  • public function nneFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value integer(kind=int32)

procedure, public :: ngp => ngpFEMDomain

  • public function ngpFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj

    Return Value integer(kind=int32)

procedure, public :: x => xFEMDomain

  • public function xFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: y => yFEMDomain

  • public function yFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: z => zFEMDomain

  • public function zFEMDomain(obj) result(ret)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: asGlobalVector => asGlobalVectorFEMDomain

  • public function asGlobalVectorFEMDomain(obj, LocalVector, ElementID, DOF) result(globalvec)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(in) :: LocalVector(:)
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: DOF

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: open => openFEMDomain

  • public subroutine openFEMDomain(obj, path, name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: path
    character(len=*), intent(in), optional :: name

procedure, public :: ply => plyFEMDomain

  • public subroutine plyFEMDomain(obj, name, NodeList)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in), optional :: NodeList(:)

procedure, public :: projection => projectionFEMDomain

  • public subroutine projectionFEMDomain(obj, direction, domain, PhysicalField, debug)

    call GetAllShapeFunc(shapefunc,elem_id=1,nod_coord=obj%Mesh%NodCoord,&

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=2), intent(in) :: direction
    type(FEMDomain_), intent(inout) :: domain
    character(len=*), intent(in) :: PhysicalField
    logical, intent(in), optional :: debug

procedure, public :: position => positionFEMDomain

  • public function positionFEMDomain(obj, id) result(x)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in) :: id

    Return Value real(kind=real64) (3)

procedure, public :: position_x => position_xFEMDomain

  • public function position_xFEMDomain(obj, id) result(x)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in) :: id

    Return Value real(kind=real64)

procedure, public :: position_y => position_yFEMDomain

  • public function position_yFEMDomain(obj, id) result(x)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in) :: id

    Return Value real(kind=real64)

procedure, public :: position_z => position_zFEMDomain

  • public function position_zFEMDomain(obj, id) result(x)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    integer(kind=int32), intent(in) :: id

    Return Value real(kind=real64)

procedure, public :: removeMaterials => removeMaterialsFEMDomain

  • public subroutine removeMaterialsFEMDomain(obj, Name, BoundaryID)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: Name
    integer(kind=int32), intent(in), optional :: BoundaryID

procedure, public :: rotate => rotateFEMDomain

  • public subroutine rotateFEMDomain(obj, x, y, z, deg)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    logical, intent(in), optional :: deg

procedure, public :: removeBoundaries => removeBoundariesFEMDomain

  • public subroutine removeBoundariesFEMDomain(obj, Name, BoundaryID)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: Name
    integer(kind=int32), intent(in), optional :: BoundaryID

procedure, public :: rename => renameFEMDomain

  • public subroutine renameFEMDomain(obj, Name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: Name

procedure, public :: resize => resizeFEMDomain

  • public subroutine resizeFEMDomain(obj, x_rate, y_rate, z_rate, x_len, y_len, z_len, x, y, z)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: x_rate
    real(kind=real64), intent(in), optional :: y_rate
    real(kind=real64), intent(in), optional :: z_rate
    real(kind=real64), intent(in), optional :: x_len
    real(kind=real64), intent(in), optional :: y_len
    real(kind=real64), intent(in), optional :: z_len
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z

procedure, public :: fat => fatFEMDomain

  • public subroutine fatFEMDomain(obj, ratio)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in) :: ratio

procedure, public :: remove => removeFEMDomain

  • public subroutine removeFEMDomain(obj)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj

procedure, public :: read => readFEMDomain

  • public subroutine readFEMDomain(obj, name, DimNum, ElementType)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in), optional :: DimNum
    integer(kind=int32), intent(in), optional :: ElementType

procedure, public :: remesh => remeshFEMDomain

  • public subroutine remeshFEMDomain(obj, meshtype, Name, x_num, y_num, z_num, x_len, y_len, z_len, Le, Lh, Dr, thickness, division, top, margin, inclineRate, shaperatio, master, slave, x, y, z, dx, dy, dz, coordinate)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: meshtype
    character(len=*), intent(in), optional :: Name
    integer(kind=int32), intent(in), optional :: x_num
    integer(kind=int32), intent(in), optional :: y_num
    integer(kind=int32), intent(in), optional :: z_num
    real(kind=real64), intent(in), optional :: x_len
    real(kind=real64), intent(in), optional :: y_len
    real(kind=real64), intent(in), optional :: z_len
    real(kind=real64), intent(in), optional :: Le
    real(kind=real64), intent(in), optional :: Lh
    real(kind=real64), intent(in), optional :: Dr
    real(kind=real64), intent(in), optional :: thickness
    integer(kind=int32), intent(in), optional :: division
    real(kind=real64), intent(in), optional :: top
    real(kind=real64), intent(in), optional :: margin
    real(kind=real64), intent(in), optional :: inclineRate
    real(kind=real64), intent(in), optional :: shaperatio
    type(FEMDomain_), intent(inout), optional :: master
    type(FEMDomain_), intent(inout), optional :: slave
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    real(kind=real64), intent(in), optional :: dx
    real(kind=real64), intent(in), optional :: dy
    real(kind=real64), intent(in), optional :: dz
    real(kind=real64), intent(in), optional :: coordinate(:,:)

procedure, public :: save => saveFEMDomain

  • public subroutine saveFEMDomain(obj, path, name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: path
    character(len=*), intent(in), optional :: name

procedure, public :: setDataType => SetDataType

  • public subroutine SetDataType(obj, inDType)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=200), intent(in) :: inDType

procedure, public :: setSolver => SetSolver

  • public subroutine SetSolver(obj, inSolverType)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=200), intent(in) :: inSolverType

procedure, public :: setName => SetName

  • public subroutine SetName(obj, Name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: Name

procedure, public :: setUp => SetUpFEMDomain

  • public subroutine SetUpFEMDomain(obj)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj

procedure, public :: setBoundary => setBoundaryFEMDomain

  • public subroutine setBoundaryFEMDomain(obj, new, x_max, x_min, y_max, y_min, z_max, z_min, t_max, t_min, value, values)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    logical, intent(in), optional :: new
    real(kind=real64), intent(in), optional :: x_max
    real(kind=real64), intent(in), optional :: x_min
    real(kind=real64), intent(in), optional :: y_max
    real(kind=real64), intent(in), optional :: y_min
    real(kind=real64), intent(in), optional :: z_max
    real(kind=real64), intent(in), optional :: z_min
    real(kind=real64), intent(in), optional :: t_max
    real(kind=real64), intent(in), optional :: t_min
    real(kind=real64), intent(in), optional :: value
    real(kind=real64), intent(in), optional :: values(4)

procedure, public :: setControlPara => SetControlParaFEMDomain

  • public subroutine SetControlParaFEMDomain(obj, OptionalTol, OptionalItrTol, OptionalTimestep, OptionalSimMode)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: OptionalTol
    integer(kind=int32), intent(in), optional :: OptionalItrTol
    integer(kind=int32), intent(in), optional :: OptionalTimestep
    integer(kind=int32), intent(in), optional :: OptionalSimMode

procedure, public :: select => selectFEMDomain

  • public function selectFEMDomain(obj, x_min, x_max, y_min, y_max, z_min, z_max) result(NodeList)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj
    real(kind=real64), intent(in), optional :: x_min
    real(kind=real64), intent(in), optional :: x_max
    real(kind=real64), intent(in), optional :: y_min
    real(kind=real64), intent(in), optional :: y_max
    real(kind=real64), intent(in), optional :: z_min
    real(kind=real64), intent(in), optional :: z_max

    Return Value integer(kind=int32), allocatable, (:)

procedure, public :: show => showFEMDomain

  • public subroutine showFEMDomain(obj)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(in) :: obj

procedure, public :: showRange => showRangeFEMDomain

procedure, public :: showMaterials => showMaterialsFEMDomain

  • public subroutine showMaterialsFEMDomain(obj, Name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: Name

procedure, public :: showBoundaries => showBoundariesFEMDomain

  • public subroutine showBoundariesFEMDomain(obj, Name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in), optional :: Name

procedure, public :: stl => stlFEMDomain

  • public subroutine stlFEMDomain(obj, name, NodeList)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in), optional :: NodeList(:)

procedure, public :: obj => objFEMDomain

  • public subroutine objFEMDomain(obj, name)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name

procedure, public :: vtk => vtkFEMDomain

  • public recursive subroutine vtkFEMDomain(obj, name, scalar, vector, tensor, field, ElementType, Nodelist)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in), optional :: scalar(:)
    real(kind=real64), intent(in), optional :: vector(:,:)
    real(kind=real64), intent(in), optional :: tensor(:,:,:)
    character(len=*), intent(in), optional :: field
    integer(kind=int32), intent(in), optional :: ElementType
    integer(kind=int32), intent(in), optional :: Nodelist(:)

procedure, public :: MassMatrix => MassMatrixFEMDomain

  • public function MassMatrixFEMDomain(obj, ElementID, Density, DOF) result(MassMatrix)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in), optional :: Density
    integer(kind=int32), intent(in), optional :: DOF

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: MassVector => MassVectorFEMDomain

  • public function MassVectorFEMDomain(obj, ElementID, Density, DOF, Accel) result(MassVector)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in), optional :: Density
    integer(kind=int32), intent(in), optional :: DOF
    real(kind=real64), intent(in), optional :: Accel(:)

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: Bmatrix => BMatrixFEMDomain

  • public recursive function BMatrixFEMDomain(obj, shapefunction, ElementID) result(Bmat)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    type(ShapeFunction_), intent(in), optional :: shapefunction
    integer(kind=int32), intent(in), optional :: ElementID

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: Dmatrix => DMatrixFEMDomain

  • public function DMatrixFEMDomain(obj, E, v) result(Dmat)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in) :: E
    real(kind=real64), intent(in) :: v

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: StrainMatrix => StrainMatrixFEMDomain

  • public function StrainMatrixFEMDomain(obj, ElementID, GaussPoint, disp) result(StrainMatrix)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in), optional :: GaussPoint
    real(kind=real64), intent(in) :: disp(:,:)

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: StrainVector => StrainVectorFEMDomain

  • public function StrainVectorFEMDomain(obj, ElementID, GaussPoint, disp) result(Strainvec)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in), optional :: GaussPoint
    real(kind=real64), intent(in) :: disp(:,:)

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: StressMatrix => StressMatrixFEMDomain

  • public function StressMatrixFEMDomain(obj, ElementID, GaussPoint, disp, E, v) result(StressMatrix)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in), optional :: GaussPoint
    real(kind=real64), intent(in) :: disp(:,:)
    real(kind=real64), intent(in) :: E
    real(kind=real64), intent(in) :: v

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: StressVector => StressVectorFEMDomain

  • public function StressVectorFEMDomain(obj, ElementID, GaussPoint, disp, E, v) result(Stressvec)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in), optional :: GaussPoint
    real(kind=real64), intent(in) :: disp(:,:)
    real(kind=real64), intent(in) :: E
    real(kind=real64), intent(in) :: v

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: StiffnessMatrix => StiffnessMatrixFEMDomain

  • public function StiffnessMatrixFEMDomain(obj, ElementID, E, v) result(StiffnessMatrix)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in) :: E
    real(kind=real64), intent(in) :: v

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: DiffusionMatrix => DiffusionMatrixFEMDomain

  • public function DiffusionMatrixFEMDomain(obj, ElementID, D) result(DiffusionMatrix)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in), optional :: D

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: ConnectMatrix => ConnectMatrixFEMDomain

  • public function ConnectMatrixFEMDomain(obj, position, DOF, shapefunction, strict) result(connectMatrix)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in) :: position(:)
    integer(kind=int32), intent(in) :: DOF
    type(ShapeFunction_), intent(in), optional :: shapefunction
    logical, intent(in), optional :: strict

    Return Value real(kind=real64), allocatable, (:,:)

procedure, public :: ElementVector => ElementVectorFEMDomain

  • public function ElementVectorFEMDomain(obj, ElementID, GlobalVector, DOF) result(ElementVector)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in) :: GlobalVector(:)
    integer(kind=int32), intent(in), optional :: DOF

    Return Value real(kind=real64), allocatable, (:)

procedure, public :: GlobalVector => GlobalVectorFEMDomain

  • public subroutine GlobalVectorFEMDomain(obj, ElementID, ElementVector, DOF, Replace, Reset, GlobalVector)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in) :: ElementVector(:)
    integer(kind=int32), intent(in), optional :: DOF
    logical, intent(in), optional :: Replace
    logical, intent(in), optional :: Reset
    real(kind=real64), intent(inout), allocatable:: GlobalVector(:)

procedure, public :: TractionVector => TractionVectorFEMDomain

  • public function TractionVectorFEMDomain(obj, displacement, YoungModulus, PoissonRatio) result(Traction)

    Arguments

    Type IntentOptional AttributesName
    class(FEMDomain_), intent(inout) :: obj
    real(kind=real64), intent(in) :: displacement(:)
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in) :: PoissonRatio(:)

    Return Value real(kind=real64), allocatable, (:)