STFEMDomain_ Derived Type

type, public, extends(FEMDomain_) :: STFEMDomain_


Components

Type Visibility Attributes Name Initial
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=:), public, allocatable :: FilePath
character(len=:), public, allocatable :: FileName
character(len=:), public, allocatable :: Name
character(len=:), public, allocatable :: SolverType
character(len=:), public, allocatable :: Category1
character(len=:), public, allocatable :: Category2
character(len=:), public, allocatable :: Category3
character(len=9), public :: Dtype = "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
integer(kind=int32), public, allocatable :: mpi_global_node_idx(:)
integer(kind=int32), public, allocatable :: mpi_shared_node_info(:,:)
type(OversetConnect_), public, allocatable :: OversetConnect(:)
integer(kind=int32), public, allocatable :: OversetExists(:,:)
integer(kind=int32), public :: num_oversetconnect = 0
type(Meshp_), public, allocatable :: Meshes(:)
type(Materialp_), public, allocatable :: Materials(:)
type(Boundaryp_), public, allocatable :: Boundaries(:)
real(kind=real64), public, allocatable :: ObjectPosition(:)
real(kind=real64), public :: total_rotation(1:3) = 0.0d0
integer(kind=int32), public, allocatable :: grub_NodeList(:)
logical, public :: debug_mode = .false.
type(ShapeFunction_), public :: TimeShapeFunction
type(Mesh_), public :: TimeMesh

Type-Bound Procedures

procedure, public :: add => addFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, NodID, DimID, Val, FastMode)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: add_point => add_pointFEMDomain

  • public subroutine add_pointFEMDomain(this, coord)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: coord

procedure, public :: importLayer => importLayerFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, name, attribute, datastyle, vectorrank, tensorrank1, tensorrank2)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, name, scalar)

    Arguments

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

procedure, public, pass :: addLayerFEMDomainVector

  • public subroutine addLayerFEMDomainVector(this, name, vector)

    Arguments

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

procedure, public, pass :: addLayerFEMDomainTensor => addLayerFEMDomaintensor

  • public subroutine addLayerFEMDomaintensor(this, name, tensor)

    Arguments

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

    Arguments

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, name, vector)

    Arguments

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

    Arguments

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

procedure, public :: mpi_matmul => mpi_matmulFEMDomain

  • public function mpi_matmulFEMDomain(this, A, x, mpid) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(CRS_), intent(in), optional :: A
    real(kind=real64), intent(in) :: x(:)
    type(MPI_), intent(inout) :: mpid

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

procedure, public :: showLayer => showLayerFEMDomain

procedure, public :: searchLayer => searchLayerFEMDomain

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

    Arguments

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

    Return Value logical

procedure, public :: addDBoundCondition => AddDBoundCondition

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, xmin, xmax, ymin, ymax, zmin, zmax, tmin, tmax, valx, valy, valz, val, val_id, NumOfValPerNod, Mode2D)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, xmin, xmax, ymin, ymax, zmin, zmax, tmin, tmax, valx, valy, valz, val, val_id, NumOfValPerNod, Mode2D)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, xmin, xmax, ymin, ymax, zmin, zmax, tmin, tmax, valx, valy, valz, MaterialID, Mode2D)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, OptionalFileFormat, OptionalProjectName, FileHandle, Mesh, Boundaries, Boundary, Materials, Material, NumberOfBoundaries, BoundaryID, NumberOfMaterials, MaterialID, node, element, materialinfo, dirichlet, neumann, file)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this) result(ret)

    Arguments

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

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

procedure, public :: bake => bakeFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, NumOfMatPara)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: NumOfMatPara

procedure, public :: bakeDBoundaries => bakeDBoundariesFEMDomain

  • public subroutine bakeDBoundariesFEMDomain(this, NodeDOF)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: NodeDOF

procedure, public :: bakeNBoundaries => bakeNBoundariesFEMDomain

  • public subroutine bakeNBoundariesFEMDomain(this, NodeDOF)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: NodeDOF

procedure, public :: bakeTBoundaries => bakeTBoundariesFEMDomain

  • public subroutine bakeTBoundariesFEMDomain(this, NodeDOF)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: NodeDOF

procedure, public :: Boolean => BooleanFEMDomain

  • public subroutine BooleanFEMDomain(this, object, difference)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(in) :: object
    logical, intent(in), optional :: difference

procedure, public :: bond => bondFEMDomain

  • public subroutine bondFEMDomain(this, domain)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout), target :: this
    type(FEMDomain_), intent(inout), target :: domain

procedure, public :: checkConnectivity => CheckConnedctivityFEMDomain

procedure, public :: connectivity => connectivityFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: ElementID

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

procedure, public :: copy => copyFEMDomain

  • public subroutine copyFEMDomain(this, OriginalObj, onlyMesh)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    class(FEMDomain_), intent(in) :: OriginalObj
    logical, intent(in), optional :: onlyMesh

procedure, public :: convertMeshType => convertMeshTypeFEMDomain

  • public subroutine convertMeshTypeFEMDomain(this, Option)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: Option

procedure, public :: changeElementType => changeElementTypeFEMDomain

  • public subroutine changeElementTypeFEMDomain(this, elementtype)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: elementtype(:)

procedure, public :: clipVector => clipVectorFEMDomain

  • public function clipVectorFEMDomain(this, vector, femdomains, DomainID) result(ret_vec)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: vector(:)
    type(FEMDomain_), intent(in) :: femdomains(:)
    integer(kind=int32), intent(in) :: DomainID

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

procedure, public :: contactdetect => contactdetectFEMDomain

  • public subroutine contactdetectFEMDomain(obj1, obj2, ContactModel)

    Arguments

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

procedure, public :: centerPosition => centerPositionFEMDomain

  • public function centerPositionFEMDomain(this, ElementID, max, min) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: ElementID
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min

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

procedure, public, pass :: centerPositionFEMDomain

  • public function centerPositionFEMDomain(this, ElementID, max, min) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: ElementID
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min

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

procedure, public, pass :: centerPositionByNodeListFEMD

  • public function centerPositionByNodeListFEMD(this, nodelist) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: nodelist(:)

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

generic, public :: getCenter => centerPositionFEMDomain, centerPositionByNodeListFEMD

  • public function centerPositionFEMDomain(this, ElementID, max, min) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: ElementID
    logical, intent(in), optional :: max
    logical, intent(in), optional :: min

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

  • public function centerPositionByNodeListFEMD(this, nodelist) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: nodelist(:)

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

procedure, public :: create => createFEMDomain

  • public subroutine createFEMDomain(this, 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, x_axis, y_axis, z_axis)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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
    real(kind=real64), intent(in), optional :: x_axis(:)
    real(kind=real64), intent(in), optional :: y_axis(:)
    real(kind=real64), intent(in), optional :: z_axis(:)

procedure, public :: cube => cubeFEMDomain

direct object generation

  • public subroutine cubeFEMDomain(this, x_num, y_num, z_num, x_axis, y_axis, z_axis)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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_axis(:)
    real(kind=real64), intent(in), optional :: y_axis(:)
    real(kind=real64), intent(in), optional :: z_axis(:)

procedure, public :: delete => DeallocateFEMDomain

procedure, public :: display => displayFEMDomain

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

    Arguments

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

procedure, public, pass :: divide_mpi_FEMDomain

procedure, public, pass :: divide_nFEMDomain

  • public function divide_nFEMDomain(this, n) result(FEMDomains)

    slow

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: n

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

generic, public :: divide => divide_mpi_FEMDomain, divide_nFEMDomain

  • public function divide_mpi_FEMDomain(this, mpid) result(FEMDomain)

    Passed the test "Tutorial/fem/divide_mesh.f90"

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(MPI_), intent(inout) :: mpid

    Return Value type(FEMDomain_)

  • public function divide_nFEMDomain(this, n) result(FEMDomains)

    slow

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: n

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

procedure, public :: Delaunay3D => Delaunay3DFEMDomain

procedure, public :: Delaunay2D => Delaunay2DFEMDomain

procedure, public :: deform => deformFEMDomain

  • public subroutine deformFEMDomain(this, disp, velocity, accel, dt)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in), optional :: disp(:)
    real(kind=real64), intent(in), optional :: velocity(:)
    real(kind=real64), intent(in), optional :: accel(:)
    real(kind=real64), intent(in), optional :: dt

procedure, public :: Deduplicate => DeduplicateFEMDomain

  • public subroutine DeduplicateFEMDomain(this, error, num_removed_node)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: error
    integer(kind=int32), intent(inout), optional :: num_removed_node

procedure, public :: export => ExportFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, x, altitude)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in), optional :: x(:)
    real(kind=real64), intent(in), optional :: altitude(:)

procedure, public :: empty => emptyFEMDomain

  • public pure function emptyFEMDomain(this) result(FEMDomain_is_empty)

    Arguments

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

    Return Value logical

procedure, public :: extract => extractFacetElementFEMDomain

  • public subroutine extractFacetElementFEMDomain(this, SurfaceElements, repeat)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: SurfaceElements(:,:)
    integer(kind=int32), intent(in) :: repeat

procedure, public :: field => fieldFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in), optional :: scalar(:)
    real(kind=real64), intent(in), optional :: vector(:,:)
    real(kind=real64), intent(in), optional :: tensor(:,:,:)

procedure, public :: fixReversedElements => fixReversedElementsFEMDomain

procedure, public :: fit => fitFEMDomain

  • public subroutine fitFEMDomain(this, x, y, z, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: x(:)
    real(kind=real64), intent(in) :: y(:)
    real(kind=real64), intent(in) :: z(:)
    logical, intent(in), optional :: debug

procedure, public :: fitSegmentToSegment => fitSegmentToSegmentFEMDomain

  • public subroutine fitSegmentToSegmentFEMDomain(this, target_domain, this_segment_list, domain_segment_list, kill_node_list)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    type(FEMDomain_), intent(inout) :: target_domain
    integer(kind=int32), intent(in) :: this_segment_list(:)
    integer(kind=int32), intent(in) :: domain_segment_list(:)
    integer, intent(inout), allocatable :: kill_node_list(:)

procedure, public :: full => fullFEMDomain

  • public function fullFEMDomain(this, func, params) result(scalar_field)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    public function func(x, params) result(scalar_value)
    Arguments
    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: x(:)
    real(kind=real64), intent(in), optional :: params(:)
    Return Value real(kind=real64)
    real(kind=real64), intent(in), optional :: params(:)

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

procedure, public :: gmshPlotMesh => GmshPlotMesh

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=1), intent(in), optional :: OptionalContorName*30
    character(len=1), 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(this, OptionalContorName, OptionalAbb, OptionalStep, Name, withNeumannBC, withDirichletBC, onlyNeumannBC, onlyDirichletBC, asMsh, withMaterial, Tag, timestep, field)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=1), intent(in), optional :: OptionalContorName*30
    character(len=1), 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(this, gp_value, OptionalContorName, OptionalAbb, OptionalStep, Name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: gp_value(:,:)
    character(len=1), intent(in), optional :: OptionalContorName*30
    character(len=1), 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(this, Vector, Name, FieldName, Step, fh, withMsh, ElementWize, NodeWize, onlyDirichlet)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    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(this, gp_value, OptionalContorName, OptionalAbb, OptionalStep, Name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: gp_value(:,:)
    character(len=1), intent(in), optional :: OptionalContorName*30
    character(len=1), 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(this, gp_value, OptionalContorName, OptionalAbb, OptionalStep)

    Arguments

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

procedure, public :: gnuplotExportStress => GnuplotExportStress

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    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(this, DBCvec)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(inout), allocatable :: DBCvec(:,:)

procedure, public :: getVolume => getVolumeFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: elem

    Return Value real(kind=real64)

procedure, public :: getJacobiMatrix => getJacobiMatrixFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: elem

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

procedure, public, pass :: getLayer_scalarFEMDomain

  • public subroutine getLayer_scalarFEMDomain(this, name, ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    real(kind=real64), allocatable :: ret(:)

generic, public :: getLayer => getLayer_scalarFEMDomain

  • public subroutine getLayer_scalarFEMDomain(this, name, ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    real(kind=real64), allocatable :: ret(:)

procedure, public :: getLayerID => getLayerIDFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

    Return Value integer(kind=int32)

procedure, public :: getLayerAttribute => getLayerAttributeFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

    Return Value integer(kind=int32)

procedure, public :: getLayerDataStyle => getLayerDataStyleFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

    Return Value integer(kind=int32)

procedure, public :: getShapeFunction => getShapeFunctionFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, x, y, z, except, exceptlist) result(node_id)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: getE2Econnectivity => getE2EconnectivityFEMDomain

  • public function getE2EconnectivityFEMDomain(this) result(E2Econnect)

    Arguments

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

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

procedure, public :: getElementCauchyStress => getElementCauchyStressFEMDomain

  • public function getElementCauchyStressFEMDomain(this, displacement, E, v, i, j, option) result(sigma)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: displacement(:)
    real(kind=real64), intent(in) :: E(:)
    real(kind=real64), intent(in) :: v(:)
    integer(kind=int32), intent(in), optional :: i
    integer(kind=int32), intent(in), optional :: j
    character(len=*), intent(in), optional :: option

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

procedure, public :: getMyID => getMyIDFEMDomain

  • public function getMyIDFEMDomain(this, FEMDomains) result(id)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    type(FEMDomain_), intent(in) :: FEMDomains(:)

    Return Value integer(kind=int32)

procedure, public :: getValue => getValueFEMDomain

  • public function getValueFEMDomain(this, scalar_field, position) result(retval)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: scalar_field(:)
    real(kind=real64), intent(in) :: position(1:3)

    Return Value real(kind=real64)

procedure, public :: getStrainTensor => getStrainTensorFEMDomain

  • public function getStrainTensorFEMDomain(this, displacement, ElementID, GaussPointID, debug) result(StrainTensor)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: displacement(:,:)
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: GaussPointID
    logical, intent(in), optional :: debug

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

procedure, public :: getSpinTensor => getSpinTensorFEMDomain

  • public function getSpinTensorFEMDomain(this, velocity, ElementID, GaussPointID, debug) result(SpinTensor)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: velocity(:,:)
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: GaussPointID
    logical, intent(in), optional :: debug

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

procedure, public :: getVelocityGradient => getVelocityGradientFEMDomain

  • public function getVelocityGradientFEMDomain(this, velocity, ElementID, GaussPointID, debug) result(VelocityGradient)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: velocity(:,:)
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: GaussPointID
    logical, intent(in), optional :: debug

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

procedure, public :: getNumberOfOversetForElement => getNumberOfOversetForElementFEMDomain

procedure, public :: getSurface => getSurfaceFEMDomain

procedure, public :: getSurfaceElements => getSurfaceElementsFEMDomain

  • public function getSurfaceElementsFEMDomain(this, range) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(Range_), intent(in) :: range

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

procedure, public :: getVertices => getVerticesFEMDomain

  • public subroutine getVerticesFEMDomain(this, vertices, vertexIDs)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(inout), allocatable :: vertices(:)
    integer(kind=int32), intent(inout), allocatable :: vertexIDs(:)

procedure, public :: NodeID => NodeIDFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: LocalNodeID

    Return Value integer(kind=int32)

procedure, public :: getElementID => getElementIDFEMDomain

  • public function getElementIDFEMDomain(this, x, debug, info) result(ElementID)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: x(:)
    logical, intent(in), optional :: debug
    integer(kind=int32), intent(inout), optional, allocatable :: info(:)

    Return Value integer(kind=int32)

procedure, public :: getNodeList => getNodeListFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: getDuplicatedNodeList => getDuplicatedNodeListFEMDomain

  • public function getDuplicatedNodeListFEMDomain(this, groupIdx, epsilon) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(inout), optional, allocatable :: groupIdx(:)
    real(kind=real64), intent(in), optional :: epsilon

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

procedure, public :: has => hasFEMDomain

  • public function hasFEMDomain(this, position) result(inside)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: position(:)

    Return Value logical

procedure, public :: have => hasFEMDomain

  • public function hasFEMDomain(this, position) result(inside)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: position(:)

    Return Value logical

procedure, public :: MovingAverageFilter => MovingAverageFilterFEMDomain

  • public function MovingAverageFilterFEMDomain(this, inScalarField, ignore_top_and_bottom) result(outScalarField)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: inScalarField(:)
    logical, intent(in), optional :: ignore_top_and_bottom

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

procedure, public :: getElement => getElementFEMDOmain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: ElementID

    Return Value type(FEMDomain_)

procedure, public :: getNeighboringElementList => getNeighboringElementListFEMDomain

  • public function getNeighboringElementListFEMDomain(this, ElementID) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: ElementID

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

procedure, public :: to_ElementID => to_ElementIDFEMDomain

  • public function to_ElementIDFEMDomain(this, NodeList) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: NodeList(:)

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

procedure, public, pass :: getElementListFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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, pass :: getElementList_by_radiusFEMDomain

  • public function getElementList_by_radiusFEMDomain(this, center, radius, zmin, zmax) result(ElementList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: center(1:2)
    real(kind=real64), intent(in) :: radius
    real(kind=real64), intent(in) :: zmin
    real(kind=real64), intent(in) :: zmax

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

generic, public :: getElementList => getElementList_by_radiusFEMDomain, getElementListFEMDomain

  • public function getElementList_by_radiusFEMDomain(this, center, radius, zmin, zmax) result(ElementList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: center(1:2)
    real(kind=real64), intent(in) :: radius
    real(kind=real64), intent(in) :: zmin
    real(kind=real64), intent(in) :: zmax

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

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: getScalarField => getScalarFieldFEMDomain

  • public function getScalarFieldFEMDomain(this, xr, yr, zr, entryvalue, default) result(ScalarField)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: xr(2)
    real(kind=real64), intent(in) :: yr(2)
    real(kind=real64), intent(in) :: zr(2)
    real(kind=real64), intent(in) :: entryvalue
    real(kind=real64), intent(in) :: default(:)

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

procedure, public :: getSingleFacetNodeID => getSingleFacetNodeIDFEMDomain

  • public function getSingleFacetNodeIDFEMDomain(this, ElementID) result(facet)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: ElementID

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

procedure, public :: getFacetLocalNodeID => getFacetLocalNodeIDFEM

  • public function getFacetLocalNodeIDFEM(this) result(facet)

    Arguments

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

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

procedure, public, pass :: getFacetList_by_range

  • public function getFacetList_by_range(this, range) result(FacetList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(Range_), intent(in) :: range

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

procedure, public, pass :: getFacetListFEMDomain

  • public function getFacetListFEMDomain(this, NodeID) result(FacetList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: NodeID

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

generic, public :: getFacetList => getFacetList_by_range, getFacetListFEMDomain

  • public function getFacetList_by_range(this, range) result(FacetList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(Range_), intent(in) :: range

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

  • public function getFacetListFEMDomain(this, NodeID) result(FacetList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: NodeID

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

procedure, public :: getFacetList_as_Idx => getFacetList_as_Idx_by_range

  • public function getFacetList_as_Idx_by_range(this, range) result(FacetList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(Range_), intent(in) :: range

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

procedure, public :: getLocalCoordinate => getLocalCoordinateFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, ElementID, GaussPointID) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    integer(kind=int32), intent(in) :: GaussPointID

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

procedure, public :: getElevation => getElevationFEMDomain

  • public function getElevationFEMDomain(this, x_num, y_num, x_len, y_len) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: x_num
    integer(kind=int32), intent(in) :: y_num
    real(kind=real64), intent(in) :: x_len
    real(kind=real64), intent(in) :: y_len

    Return Value real(kind=real64), (x_num+1,y_num+1)

procedure, public :: init => InitializeFEMDomain

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

    Arguments

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

procedure, public :: import => ImportFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

procedure, public :: importSTLFile => ImportSTLFileFEMDomain

  • public subroutine ImportSTLFileFEMDomain(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

procedure, public :: importMesh => ImportMeshFEMDomain

  • public subroutine ImportMeshFEMDomain(this, Mesh)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    class(Mesh_), intent(inout) :: Mesh

procedure, public :: importMaterials => ImportMaterialsFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, Boundary, NumberOfBoundaries, BoundaryID)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, NumOfValPerNod)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: NumOfValPerNod

procedure, public :: initNBC => InitNBC

  • public subroutine InitNBC(this, NumOfValPerNod)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: NumOfValPerNod

procedure, public :: initTBC => InitTBC

  • public subroutine InitTBC(this, NumOfValPerNod)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: NumOfValPerNod

procedure, public :: inside_of_element => inside_of_elementFEMDomain

  • public function inside_of_elementFEMDomain(this, point, ElementID) result(inside)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: point(:)
    integer(kind=int32), intent(in) :: ElementID

    Return Value logical

procedure, public :: json => jsonFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    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(this, blacklist, flag)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: blacklist(:)
    integer(kind=int32), intent(in), optional :: flag

procedure, public :: killNodes => killNodesFEMDomain

  • public subroutine killNodesFEMDomain(this, NodeList)

    [0,1,1,2,3,3]

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: NodeList(:)

procedure, public :: length => lengthFEMDomain

  • public function lengthFEMDomain(this) result(length)

    Arguments

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

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

procedure, public :: meltingSkelton => MeltingSkeltonFEMDomain

procedure, public :: move => moveFEMDomain

  • public subroutine moveFEMDomain(this, x, y, z, NodeList, to)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(:)
    character(len=*), intent(in), optional :: to

procedure, public :: meshing => meshingFEMDomain

procedure, public :: merge => MergeFEMDomain

  • public subroutine MergeFEMDomain(inobj1, inobj2, outobj)

    Arguments

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

procedure, public :: msh => mshFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    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 pure function nnFEMDomain(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: np => nnFEMDomain

  • public pure function nnFEMDomain(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: nd => ndFEMDomain

  • public pure function ndFEMDomain(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: ne => neFEMDomain

  • public pure function neFEMDomain(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: nne => nneFEMDomain

  • public pure function nneFEMDomain(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: ngp => ngpFEMDomain

  • public function ngpFEMDomain(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: NumOversetElements => NumOversetElementsFEMDomain

  • public pure function NumOversetElementsFEMDomain(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: x => xFEMDomain

  • public function xFEMDomain(this) result(ret)

    Arguments

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

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

procedure, public :: y => yFEMDomain

  • public function yFEMDomain(this) result(ret)

    Arguments

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

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

procedure, public :: z => zFEMDomain

  • public function zFEMDomain(this) result(ret)

    Arguments

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

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

procedure, public :: getPoint => getPointFEMDomain

  • public function getPointFEMDomain(this, pointIdx) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: pointIdx

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

procedure, public :: Point => getPointFEMDomain

  • public function getPointFEMDomain(this, pointIdx) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: pointIdx

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

procedure, public :: getPoint_x => getPoint_xFEMDomain

  • public function getPoint_xFEMDomain(this, idx) result(coord)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: idx

    Return Value real(kind=real64)

procedure, public :: getPoint_y => getPoint_yFEMDomain

  • public function getPoint_yFEMDomain(this, idx) result(coord)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: idx

    Return Value real(kind=real64)

procedure, public :: getPoint_z => getPoint_zFEMDomain

  • public function getPoint_zFEMDomain(this, idx) result(coord)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: idx

    Return Value real(kind=real64)

procedure, public :: setPoint_x => set_xFEMDomain

  • public subroutine set_xFEMDomain(this, idx, coord)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: idx
    real(kind=real64), intent(in) :: coord

procedure, public :: setPoint_y => set_yFEMDomain

  • public subroutine set_yFEMDomain(this, idx, coord)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: idx
    real(kind=real64), intent(in) :: coord

procedure, public :: setPoint_z => set_zFEMDomain

  • public subroutine set_zFEMDomain(this, idx, coord)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: idx
    real(kind=real64), intent(in) :: coord

procedure, public :: xyz => xyzFEMDomain

  • public function xyzFEMDomain(this) result(nodcoord)

    Arguments

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

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

procedure, public :: asGlobalVector => asGlobalVectorFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    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 :: ElementID2NodeID => ElementID2NodeIDFEMDomain

  • public function ElementID2NodeIDFEMDomain(this, ElementID) result(NodeID)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: ElementID(:)

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

procedure, public :: open => openFEMDomain

  • public subroutine openFEMDomain(this, path, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: path
    character(len=*), intent(in), optional :: name

procedure, public, pass :: oversetFEMDomain

  • public subroutine oversetFEMDomain(this, FEMDomain, DomainID, algorithm, MyDomainID, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomain
    integer(kind=int32), intent(in) :: DomainID
    integer(kind=int32), intent(in) :: algorithm
    integer(kind=int32), intent(in), optional :: MyDomainID
    logical, intent(in), optional :: debug

procedure, public, pass :: oversetFEMDomains

  • public subroutine oversetFEMDomains(this, FEMDomains, to, by, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomains(:)
    integer(kind=int32), intent(in) :: to
    character(len=*), intent(in) :: by
    logical, intent(in), optional :: debug

generic, public :: overset => oversetFEMDomain, oversetFEMDomains

  • public subroutine oversetFEMDomain(this, FEMDomain, DomainID, algorithm, MyDomainID, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomain
    integer(kind=int32), intent(in) :: DomainID
    integer(kind=int32), intent(in) :: algorithm
    integer(kind=int32), intent(in), optional :: MyDomainID
    logical, intent(in), optional :: debug
  • public subroutine oversetFEMDomains(this, FEMDomains, to, by, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomains(:)
    integer(kind=int32), intent(in) :: to
    character(len=*), intent(in) :: by
    logical, intent(in), optional :: debug

generic, public :: overlap => oversetFEMDomain, oversetFEMDomains

  • public subroutine oversetFEMDomain(this, FEMDomain, DomainID, algorithm, MyDomainID, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomain
    integer(kind=int32), intent(in) :: DomainID
    integer(kind=int32), intent(in) :: algorithm
    integer(kind=int32), intent(in), optional :: MyDomainID
    logical, intent(in), optional :: debug
  • public subroutine oversetFEMDomains(this, FEMDomains, to, by, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomains(:)
    integer(kind=int32), intent(in) :: to
    character(len=*), intent(in) :: by
    logical, intent(in), optional :: debug

generic, public :: chimera => oversetFEMDomain, oversetFEMDomains

  • public subroutine oversetFEMDomain(this, FEMDomain, DomainID, algorithm, MyDomainID, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomain
    integer(kind=int32), intent(in) :: DomainID
    integer(kind=int32), intent(in) :: algorithm
    integer(kind=int32), intent(in), optional :: MyDomainID
    logical, intent(in), optional :: debug
  • public subroutine oversetFEMDomains(this, FEMDomains, to, by, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomains(:)
    integer(kind=int32), intent(in) :: to
    character(len=*), intent(in) :: by
    logical, intent(in), optional :: debug

procedure, public :: PCAvector => PCAvectorFEMDomain

  • public function PCAvectorFEMDomain(this, eigen_values) result(vectors)

    INPUT INPUT/OUTPUT OUTPUT

    Read more…

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(inout), optional, allocatable :: eigen_values(:)

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

procedure, public :: ply => plyFEMDomain

  • public subroutine plyFEMDomain(this, name, NodeList, scalar)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in), optional :: NodeList(:)
    real(kind=real64), intent(in), optional :: scalar(:)

procedure, public :: projection => projectionFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, id) result(x)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: id

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

procedure, public :: position_x => position_xFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: id

    Return Value real(kind=real64)

procedure, public :: position_y => position_yFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: id

    Return Value real(kind=real64)

procedure, public :: position_z => position_zFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in), optional :: id

    Return Value real(kind=real64)

procedure, public :: points => xyzFEMDomain

  • public function xyzFEMDomain(this) result(nodcoord)

    Arguments

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

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

procedure, public :: span => spanFEMDomain

  • public subroutine spanFEMDomain(this, p1, p2)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: p1(:)
    real(kind=real64), intent(in) :: p2(:)

procedure, public :: to_HollowTube => to_HollowTube_FEMDomain

  • public subroutine to_HollowTube_FEMDomain(this, r_num, theta_num, z_num, thickness, radius, length)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: r_num
    integer(kind=int32), intent(in), optional :: theta_num
    integer(kind=int32), intent(in), optional :: z_num
    real(kind=real64), intent(in), optional :: thickness
    real(kind=real64), intent(in), optional :: radius
    real(kind=real64), intent(in), optional :: length

procedure, public :: to_Tube => to_HollowTube_FEMDomain

  • public subroutine to_HollowTube_FEMDomain(this, r_num, theta_num, z_num, thickness, radius, length)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: r_num
    integer(kind=int32), intent(in), optional :: theta_num
    integer(kind=int32), intent(in), optional :: z_num
    real(kind=real64), intent(in), optional :: thickness
    real(kind=real64), intent(in), optional :: radius
    real(kind=real64), intent(in), optional :: length

procedure, public :: to_culm => to_culm_FEMDomain

  • public subroutine to_culm_FEMDomain(this, r_num, theta_num, z_num, thickness, radius, length, node_thickness)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: r_num
    integer(kind=int32), intent(in), optional :: theta_num
    integer(kind=int32), intent(in), optional :: z_num
    real(kind=real64), intent(in), optional :: thickness
    real(kind=real64), intent(in), optional :: radius
    real(kind=real64), intent(in), optional :: length
    real(kind=real64), intent(in), optional :: node_thickness

procedure, public :: to_multi_culm => to_multi_culm_FEMDomain

  • public subroutine to_multi_culm_FEMDomain(this, r_num, theta_num, z_num, thickness, radius, length, node_thickness, n)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in), optional :: r_num
    integer(kind=int32), intent(in), optional :: theta_num
    integer(kind=int32), intent(in), optional :: z_num
    real(kind=real64), intent(in), optional :: thickness
    real(kind=real64), intent(in), optional :: radius
    real(kind=real64), intent(in), optional :: length
    real(kind=real64), intent(in), optional :: node_thickness
    integer(kind=int32), intent(in) :: n

procedure, public :: to_cylinder => to_cylinder_FEMDomain

  • public subroutine to_cylinder_FEMDomain(this, x_num, y_num, z_num, radius, length)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: radius(1:2)
    real(kind=real64), intent(in), optional :: length

procedure, public :: to_vertexData => to_vertexData_FEMDomain

  • public function to_vertexData_FEMDomain(this, vertexIDs, scalar) result(vertexData)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: vertexIDs(:)
    real(kind=real64), intent(in) :: scalar(:)

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

procedure, public :: xmin => xminFEMDomain

  • public pure function xminFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: x_min => xminFEMDomain

  • public pure function xminFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: xmax => xmaxFEMDomain

  • public pure function xmaxFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: x_max => xmaxFEMDomain

  • public pure function xmaxFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: ymin => yminFEMDomain

  • public pure function yminFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: y_min => yminFEMDomain

  • public pure function yminFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: ymax => ymaxFEMDomain

  • public pure function ymaxFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: y_max => ymaxFEMDomain

  • public pure function ymaxFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: zmin => zminFEMDomain

  • public pure function zminFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: z_min => zminFEMDomain

  • public pure function zminFEMDomain(this) result(ret)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: zmax => zmaxFEMDomain

  • public function zmaxFEMDomain(this, x, y, debug) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    logical, intent(in), optional :: debug

    Return Value real(kind=real64)

procedure, public :: z_max => zmaxFEMDomain

  • public function zmaxFEMDomain(this, x, y, debug) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    logical, intent(in), optional :: debug

    Return Value real(kind=real64)

procedure, public :: xrange => xrangeFEMDomain

  • public pure function xrangeFEMDomain(this) result(xrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: x_range => xrangeFEMDomain

  • public pure function xrangeFEMDomain(this) result(xrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: xr => xrangeFEMDomain

  • public pure function xrangeFEMDomain(this) result(xrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: yrange => yrangeFEMDomain

  • public pure function yrangeFEMDomain(this) result(yrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: y_range => yrangeFEMDomain

  • public pure function yrangeFEMDomain(this) result(yrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: yr => yrangeFEMDomain

  • public pure function yrangeFEMDomain(this) result(yrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: zrange => zrangeFEMDomain

  • public pure function zrangeFEMDomain(this) result(zrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: z_range => zrangeFEMDomain

  • public pure function zrangeFEMDomain(this) result(zrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: zr => zrangeFEMDomain

  • public pure function zrangeFEMDomain(this) result(zrange)

    Arguments

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

    Return Value real(kind=real64), (1:2)

procedure, public :: x_len => x_lenFEMDomain

  • public function x_lenFEMDomain(this) result(length)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: y_len => y_lenFEMDomain

  • public function y_lenFEMDomain(this) result(length)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: z_len => z_lenFEMDomain

  • public function z_lenFEMDomain(this) result(length)

    Arguments

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

    Return Value real(kind=real64)

procedure, public :: removeMaterials => removeMaterialsFEMDomain

  • public subroutine removeMaterialsFEMDomain(this, Name, BoundaryID)

    Arguments

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

procedure, public :: rotate => rotateFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, Name, BoundaryID)

    Arguments

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

procedure, public :: rename => renameFEMDomain

  • public subroutine renameFEMDomain(this, Name)

    Arguments

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

procedure, public :: resize => resizeFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, ratio)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: ratio

procedure, public, pass :: removeElement_by_radius_FEMDomain

  • public recursive subroutine removeElement_by_radius_FEMDomain(this, center, r)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: center(1:3)
    real(kind=real64), intent(in) :: r

procedure, public, pass :: removeElementFEMDomain

  • public recursive subroutine removeElementFEMDomain(this, x_min, x_max, y_min, y_max, z_min, z_max, xr, yr, zr)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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
    real(kind=real64), intent(in), optional :: xr(1:2)
    real(kind=real64), intent(in), optional :: yr(1:2)
    real(kind=real64), intent(in), optional :: zr(1:2)

generic, public :: removeElement => removeElementFEMDomain, removeElement_by_radius_FEMDomain

  • public recursive subroutine removeElementFEMDomain(this, x_min, x_max, y_min, y_max, z_min, z_max, xr, yr, zr)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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
    real(kind=real64), intent(in), optional :: xr(1:2)
    real(kind=real64), intent(in), optional :: yr(1:2)
    real(kind=real64), intent(in), optional :: zr(1:2)
  • public recursive subroutine removeElement_by_radius_FEMDomain(this, center, r)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: center(1:3)
    real(kind=real64), intent(in) :: r

generic, public :: removeElements => removeElementFEMDomain, removeElement_by_radius_FEMDomain

  • public recursive subroutine removeElementFEMDomain(this, x_min, x_max, y_min, y_max, z_min, z_max, xr, yr, zr)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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
    real(kind=real64), intent(in), optional :: xr(1:2)
    real(kind=real64), intent(in), optional :: yr(1:2)
    real(kind=real64), intent(in), optional :: zr(1:2)
  • public recursive subroutine removeElement_by_radius_FEMDomain(this, center, r)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: center(1:3)
    real(kind=real64), intent(in) :: r

procedure, public :: remove => removeFEMDomain

  • public subroutine removeFEMDomain(this)

    Arguments

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

procedure, public :: remove_duplication => remove_duplication_FEMDomain

  • public subroutine remove_duplication_FEMDomain(this, epsilon, debug)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in), optional :: epsilon
    logical, intent(in), optional :: debug

procedure, public, pass :: refineFEMDomain

  • public subroutine refineFEMDomain(this, ElementID, success)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    logical, intent(inout), optional :: success

procedure, public, pass :: refine_elementsFEMDomain

  • public subroutine refine_elementsFEMDomain(this, ElementID)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID(:)

generic, public :: refine => refineFEMDomain, refine_elementsFEMDomain

  • public subroutine refineFEMDomain(this, ElementID, success)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    logical, intent(inout), optional :: success
  • public subroutine refine_elementsFEMDomain(this, ElementID)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID(:)

procedure, public, pass :: readFEMDomain

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

    Arguments

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

procedure, public, pass :: read_vtk_domain_decomposed_FEMDOmain

  • public subroutine read_vtk_domain_decomposed_FEMDOmain(this, name, myrank)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in) :: myrank

generic, public :: read => readFEMDomain

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

    Arguments

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

procedure, public, pass :: read_SCALAR_FEMDomain

  • public subroutine read_SCALAR_FEMDomain(this, filename)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: filename

generic, public :: read_SCALAR => read_SCALAR_FEMDomain

  • public subroutine read_SCALAR_FEMDomain(this, filename)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: filename

generic, public :: read_vtk => read_vtk_domain_decomposed_FEMDOmain

  • public subroutine read_vtk_domain_decomposed_FEMDOmain(this, name, myrank)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in) :: myrank

procedure, public :: read_mpi_property => read_mpi_propertyFEMDomain

  • public subroutine read_mpi_propertyFEMDomain(this, name, num_division)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(inout), optional :: num_division

procedure, public :: remesh => remeshFEMDomain

  • public subroutine remeshFEMDomain(this, 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 Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: randomDance => randomDanceFEMDomain

  • public subroutine randomDanceFEMDomain(this, move, rotate, resize)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in), optional :: move(1:2)
    real(kind=real64), intent(in), optional :: rotate(1:2)
    real(kind=real64), intent(in), optional :: resize(1:2)

procedure, public :: save => saveFEMDomain

  • public subroutine saveFEMDomain(this, path, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: path
    character(len=*), intent(in), optional :: name

procedure, public :: setDataType => SetDataType

  • public subroutine SetDataType(this, inDType)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: inDType

procedure, public :: setSolver => SetSolver

  • public subroutine SetSolver(this, inSolverType)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: inSolverType

procedure, public :: setName => SetName

  • public subroutine SetName(this, Name)

    Arguments

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

procedure, public :: setUp => SetUpFEMDomain

  • public subroutine SetUpFEMDomain(this)

    Arguments

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

procedure, public :: setBoundary => setBoundaryFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, OptionalTol, OptionalItrTol, OptionalTimestep, OptionalSimMode)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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, pass :: selectFEMDomain

  • public function selectFEMDomain(this, x_min, x_max, y_min, y_max, z_min, z_max, center, radius_range) result(NodeList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    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
    real(kind=real64), intent(in), optional :: center(:)
    real(kind=real64), intent(in), optional :: radius_range(1:2)

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

generic, public :: select => selectFEMDomain

  • public function selectFEMDomain(this, x_min, x_max, y_min, y_max, z_min, z_max, center, radius_range) result(NodeList)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    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
    real(kind=real64), intent(in), optional :: center(:)
    real(kind=real64), intent(in), optional :: radius_range(1:2)

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

procedure, public :: show => showFEMDomain

  • public subroutine showFEMDomain(this)

    Arguments

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

procedure, public :: showRange => showRangeFEMDomain

procedure, public :: showMaterials => showMaterialsFEMDomain

  • public subroutine showMaterialsFEMDomain(this, Name)

    Arguments

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

procedure, public :: showBoundaries => showBoundariesFEMDomain

  • public subroutine showBoundariesFEMDomain(this, Name)

    Arguments

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

procedure, public :: stl => stlFEMDomain

  • public subroutine stlFEMDomain(this, name, NodeList)

    Arguments

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

procedure, public :: obj => objFEMDomain

  • public subroutine objFEMDomain(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

procedure, public, pass :: vtk_MPI_FEMDOmain

  • public subroutine vtk_MPI_FEMDOmain(this, name, num_division, remove)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in) :: num_division
    logical, intent(in), optional :: remove

procedure, public, pass :: vtkFEMDOmain => vtkFEMDomain

  • public recursive subroutine vtkFEMDomain(this, name, scalar, vector, tensor, field, ElementType, Nodelist, debug, displacement, only_field)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(:)
    logical, intent(in), optional :: debug
    real(kind=real64), intent(in), optional :: displacement(:)
    logical, intent(in), optional :: only_field

generic, public :: vtk => vtkFEMDOmain, vtk_MPI_FEMDOmain

  • public recursive subroutine vtkFEMDomain(this, name, scalar, vector, tensor, field, ElementType, Nodelist, debug, displacement, only_field)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(:)
    logical, intent(in), optional :: debug
    real(kind=real64), intent(in), optional :: displacement(:)
    logical, intent(in), optional :: only_field
  • public subroutine vtk_MPI_FEMDOmain(this, name, num_division, remove)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer(kind=int32), intent(in) :: num_division
    logical, intent(in), optional :: remove

procedure, public :: x3d => x3dFEMDomain

  • public subroutine x3dFEMDomain(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

procedure, public :: csv => csvFEMDomain

  • public subroutine csvFEMDomain(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    character(len=*), intent(in) :: name

procedure, public :: ifc => ifcFEMDomain

  • public subroutine ifcFEMDomain(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    character(len=*), intent(in) :: name

procedure, public :: Bmatrix => BMatrixFEMDomain

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

    Arguments

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

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

procedure, public :: Lmatrix => LMatrixFEMDomain

  • public recursive function LMatrixFEMDomain(this, shapefunction, ElementID) result(Lmat)

    Arguments

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

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

procedure, public :: Wmatrix => WMatrixFEMDomain

  • public recursive function WMatrixFEMDomain(this, shapefunction, ElementID) result(Wmat)

    Arguments

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

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

procedure, public, pass :: DMatrix_generic_FEMDomain

  • public function DMatrix_generic_FEMDomain(this, E, v) result(Dmat)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: E(1:6)
    real(kind=real64), intent(in) :: v(1:6)

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

procedure, public, pass :: DMatrixFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: E
    real(kind=real64), intent(in) :: v

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

generic, public :: Dmatrix => DMatrixFEMDomain, DMatrix_generic_FEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: E
    real(kind=real64), intent(in) :: v

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

  • public function DMatrix_generic_FEMDomain(this, E, v) result(Dmat)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: E(1:6)
    real(kind=real64), intent(in) :: v(1:6)

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

procedure, public :: MassVector => MassVectorFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: PressureVector => PressureVectorFEMDomain

  • public function PressureVectorFEMDomain(this, ElementID, pressure) result(PressureVector)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in) :: pressure

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

procedure, public :: StrainMatrix => StrainMatrixFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, ElementID, GaussPoint, disp) result(Strainvec)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, ElementID, GaussPoint, disp, E, v) result(StressMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, ElementID, GaussPoint, disp, E, v) result(Stressvec)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: ViscousBoundaryForce => ViscousBoundaryForceFEMDomain

  • public function ViscousBoundaryForceFEMDomain(this, u, v, spring, damper, NodeList, Direction) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: u(:)
    real(kind=real64), intent(in) :: v(:)
    real(kind=real64), intent(in) :: spring
    real(kind=real64), intent(in) :: damper
    integer(kind=int32), intent(in) :: NodeList(:)
    character(len=*), intent(in) :: Direction

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

procedure, public, pass :: DiffusionMatrixFEMDomain

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

    diff_coeff & det_mat(shapefunc%Jmatinv,size(shapefunc%Jmatinv,1) )! it was JmatInv, but should be Jmat, revised @ 20221201

    Arguments

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

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

procedure, public, pass :: StiffnessMatrixFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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, pass :: StiffnessMatrix_generic_FEMDomain

  • public function StiffnessMatrix_generic_FEMDomain(this, ElementID, E, v, rot_angles) result(StiffnessMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in) :: E(:)
    real(kind=real64), intent(in) :: v(:)
    real(kind=real64), intent(in), optional :: rot_angles(:)

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

procedure, public, pass :: MassMatrixFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in), optional :: Density
    integer(kind=int32), intent(in), optional :: DOF
    logical, intent(in), optional :: Lumped

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

procedure, public :: ConnectMatrix => ConnectMatrixFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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 :: ConnectVector => ConnectVectorFEMDomain

  • public function ConnectVectorFEMDomain(this, position, DOF, shapefunction, strict) result(Connectvector)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, ElementID, GlobalVector, DOF) result(ElementVector)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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(this, ElementID, ElementVector, DOF, Replace, Reset, GlobalVector)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    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, pass :: TractionVectorFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: displacement(:)
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in) :: PoissonRatio(:)
    integer(kind=int32), intent(in), optional :: debug_elementID

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

procedure, public, pass :: TractionVector_by_elemFEMDomain

  • public function TractionVector_by_elemFEMDomain(this, ElementID, range, SurfacePressure) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: ElementID
    type(Range_), intent(in) :: range
    real(kind=real64), intent(in) :: SurfacePressure

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

generic, public :: TractionVector => TractionVectorFEMDomain, TractionVector_by_elemFEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: displacement(:)
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in) :: PoissonRatio(:)
    integer(kind=int32), intent(in), optional :: debug_elementID

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

  • public function TractionVector_by_elemFEMDomain(this, ElementID, range, SurfacePressure) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: ElementID
    type(Range_), intent(in) :: range
    real(kind=real64), intent(in) :: SurfacePressure

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

procedure, public :: PointTorsionalForce => PointTorsionalForceFEMDomain

  • public function PointTorsionalForceFEMDomain(this, normal, center, NodeID) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: normal(:)
    real(kind=real64), intent(in) :: center(:)
    integer(kind=int32), intent(in) :: NodeID

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

procedure, public :: TorsionalForce => TorsionalForceFEMDomain

  • public function TorsionalForceFEMDomain(this, normal, center, range) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: normal(:)
    real(kind=real64), intent(in) :: center(:)
    type(Range_), intent(in) :: range

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

procedure, public :: PointForceVector => PointForceVectorFEMDomain

  • public function PointForceVectorFEMDomain(this, NodeList, Direction, force) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: NodeList(:)
    character(len=*), intent(in) :: Direction
    real(kind=real64), intent(in) :: force

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

procedure, public :: FlowVector => FlowVectorFEMDomain

  • public function FlowVectorFEMDomain(this, Pressure, Permiability, ElementID) result(Flowvector)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Pressure(:)
    real(kind=real64), intent(in) :: Permiability
    integer(kind=int32), intent(in) :: ElementID

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

procedure, public, pass :: DiffusionMatrix_as_CRS_FEMDomain

  • public function DiffusionMatrix_as_CRS_FEMDomain(this, Coefficient, omp) result(DiffusionMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Coefficient(:)
    logical, intent(in), optional :: omp

    Return Value type(CRS_)

procedure, public, pass :: StiffnessMatrix_as_CRS_FEMDomain

  • public function StiffnessMatrix_as_CRS_FEMDomain(this, YoungModulus, PoissonRatio, omp) result(StiffnessMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in), optional :: PoissonRatio(:)
    logical, intent(in), optional :: omp

    Return Value type(CRS_)

procedure, public, pass :: MassMatrix_as_CRS_FEMDomain

  • public function MassMatrix_as_CRS_FEMDomain(this, Density, DOF, omp) result(MassMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Density(:)
    integer(kind=int32), intent(in), optional :: DOF
    logical, intent(in), optional :: omp

    Return Value type(CRS_)

procedure, public, pass :: M_inv_K_Matrix_CRS_FEMDomain

  • public function M_inv_K_Matrix_CRS_FEMDomain(this, Density, YoungModulus, PoissonRatio) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Density(:)
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in), optional :: PoissonRatio(:)

    Return Value type(CRS_)

procedure, public, pass :: ZeroMatrix_as_CRS_FEMDomain

  • public recursive function ZeroMatrix_as_CRS_FEMDomain(this, DOF, regacy) result(ZeroMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: DOF
    logical, intent(in), optional :: regacy

    Return Value type(CRS_)

procedure, public, pass :: ZeroMatrix_as_COO_FEMDomain

  • public function ZeroMatrix_as_COO_FEMDomain(this, DOF) result(ZeroMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: DOF

    Return Value type(COO_)

generic, public :: DiffusionMatrix => DiffusionMatrixFEMDomain, DiffusionMatrix_as_CRS_FEMDomain

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

    diff_coeff & det_mat(shapefunc%Jmatinv,size(shapefunc%Jmatinv,1) )! it was JmatInv, but should be Jmat, revised @ 20221201

    Arguments

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

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

  • public function DiffusionMatrix_as_CRS_FEMDomain(this, Coefficient, omp) result(DiffusionMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Coefficient(:)
    logical, intent(in), optional :: omp

    Return Value type(CRS_)

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

    Arguments

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

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

  • public function StiffnessMatrix_generic_FEMDomain(this, ElementID, E, v, rot_angles) result(StiffnessMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in) :: E(:)
    real(kind=real64), intent(in) :: v(:)
    real(kind=real64), intent(in), optional :: rot_angles(:)

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

  • public function StiffnessMatrix_as_CRS_FEMDomain(this, YoungModulus, PoissonRatio, omp) result(StiffnessMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in), optional :: PoissonRatio(:)
    logical, intent(in), optional :: omp

    Return Value type(CRS_)

generic, public :: MassMatrix => MassMatrixFEMDomain, MassMatrix_as_CRS_FEMDomain

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

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: ElementID
    real(kind=real64), intent(in), optional :: Density
    integer(kind=int32), intent(in), optional :: DOF
    logical, intent(in), optional :: Lumped

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

  • public function MassMatrix_as_CRS_FEMDomain(this, Density, DOF, omp) result(MassMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Density(:)
    integer(kind=int32), intent(in), optional :: DOF
    logical, intent(in), optional :: omp

    Return Value type(CRS_)

procedure, public :: setMassMatrix => setMassMatrix_as_CRS_FEMDomain

  • public subroutine setMassMatrix_as_CRS_FEMDomain(this, Density, DOF, omp, MassMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Density(:)
    integer(kind=int32), intent(in), optional :: DOF
    logical, intent(in), optional :: omp
    type(CRS_), intent(inout) :: MassMatrix

procedure, public :: setStiffnessMatrix => setStiffnessMatrix_as_CRS_FEMDomain

  • public subroutine setStiffnessMatrix_as_CRS_FEMDomain(this, YoungModulus, PoissonRatio, omp, StiffnessMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in), optional :: PoissonRatio(:)
    logical, intent(in), optional :: omp
    type(CRS_), intent(inout) :: StiffnessMatrix

generic, public :: M_inv_K_Matrix => M_inv_K_Matrix_CRS_FEMDomain

  • public function M_inv_K_Matrix_CRS_FEMDomain(this, Density, YoungModulus, PoissonRatio) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: Density(:)
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in), optional :: PoissonRatio(:)

    Return Value type(CRS_)

generic, public :: ZeroMatrix => ZeroMatrix_as_CRS_FEMDomain

  • public recursive function ZeroMatrix_as_CRS_FEMDomain(this, DOF, regacy) result(ZeroMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: DOF
    logical, intent(in), optional :: regacy

    Return Value type(CRS_)

generic, public :: ZeroMatrix_as_COO => ZeroMatrix_as_COO_FEMDomain

  • public function ZeroMatrix_as_COO_FEMDomain(this, DOF) result(ZeroMatrix)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: DOF

    Return Value type(COO_)

procedure, public :: loadPoints => loadPointsFEMDomain

  • public subroutine loadPointsFEMDomain(this, x, y, z)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: x(:)
    real(kind=real64), intent(in) :: y(:)
    real(kind=real64), intent(in) :: z(:)

procedure, public :: particles => particlesFEMDomain

  • public subroutine particlesFEMDomain(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    character(len=*), intent(in) :: name

procedure, public :: sync => syncFEMDomain

  • public subroutine syncFEMDomain(this, from, mpid)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(inout) :: this
    integer(kind=int32), intent(in) :: from
    type(MPI_), intent(inout) :: mpid

procedure, public :: setVectorValue => setVectorValueFEMDomain

  • public subroutine setVectorValueFEMDomain(this, vector, DOF, fillValue, range)

    Arguments

    Type IntentOptional Attributes Name
    class(FEMDomain_), intent(in) :: this
    real(kind=real64), intent(inout), allocatable :: vector(:)
    integer(kind=int32), intent(in) :: DOF
    real(kind=real64), intent(in) :: fillValue
    type(Range_), intent(in) :: range