ShapeFunctionClass Module



Derived Types

type, public ::  ShapeFunction_

Components

Type Visibility Attributes Name Initial
real(kind=real64), public, allocatable :: Nmat(:)
real(kind=real64), public, allocatable :: dNdgzi(:,:)
real(kind=real64), public, allocatable :: dNdgzidgzi(:,:)
real(kind=real64), public, allocatable :: gzi(:)
real(kind=real64), public, allocatable :: GaussPoint(:,:)
real(kind=real64), public, allocatable :: GaussIntegWei(:)
real(kind=real64), public, allocatable :: Jmat(:,:)
real(kind=real64), public, allocatable :: JmatInv(:,:)
real(kind=real64), public, allocatable :: ElemCoord(:,:)
real(kind=real64), public, allocatable :: ElemCoord_n(:,:)
real(kind=real64), public, allocatable :: du(:,:)
real(kind=real64), public :: detJ
integer(kind=int32), public :: NumOfNode
integer(kind=int32), public :: NumOfOrder
integer(kind=int32), public :: NumOfDim = 0
integer(kind=int32), public :: NumOfGp = 0
integer(kind=int32), public :: GpID
integer(kind=int32), public :: ierr
integer(kind=int32), public :: currentGpID
integer(kind=int32), public :: ElementID
logical, public :: ReducedIntegration = .false.
logical, public :: Empty = .true.
character(len=70), public :: ElemType
character(len=60), public :: ErrorMsg

Type-Bound Procedures

procedure, public :: init => initShapeFunction
procedure, public :: update => updateShapeFunction
procedure, public :: SetType => SetShapeFuncType
procedure, public :: GetAll => GetAllShapeFunc
procedure, public :: get => GetAllShapeFunc
procedure, public :: getOnlyNvec => GetShapeFunction
procedure, public :: Deallocate => DeallocateShapeFunction
procedure, public :: getType => getShapeFuncType
procedure, public :: GetGaussPoint
procedure, public :: export => exportShapeFunction
procedure, public :: remove => removeShapeFunction
procedure, public :: save => saveShapeFunction
procedure, public :: open => openShapeFunction

Subroutines

public subroutine openShapeFunction(obj, path, name)

Arguments

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

public subroutine saveShapeFunction(obj, path, name)

Arguments

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

public subroutine removeShapeFunction(obj)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine initShapeFunction(obj, ElemType)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
character(len=*), intent(in), optional :: ElemType

public subroutine updateShapeFunction(obj, ElemType, NodCoord, ElemNod, ElemID, GpID)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
character(len=*), intent(in), optional :: ElemType
real(kind=real64), intent(in) :: NodCoord(:,:)
integer(kind=int32), intent(in) :: ElemNod(:,:)
integer(kind=int32), intent(in) :: ElemID
integer(kind=int32), intent(in) :: GpID

public subroutine SetShapeFuncType(obj, NumOfDim, NumOfNodePerElem, ReducedIntegration, NumOfGp)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: NumOfDim
integer(kind=int32), intent(in), optional :: NumOfNodePerElem
logical, intent(in), optional :: ReducedIntegration
integer(kind=int32), intent(in), optional :: NumOfGp

public subroutine getShapeFuncType(obj, NumOfDim, NumOfNodePerElem, NumOfGp)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
integer(kind=int32), intent(in) :: NumOfDim
integer(kind=int32), intent(in) :: NumOfNodePerElem
integer(kind=int32), intent(in), optional :: NumOfGp

public subroutine GetAllShapeFunc(obj, elem_id, nod_coord, nod_coord_n, elem_nod, OptionalNumOfNode, OptionalNumOfOrder, OptionalNumOfDim, OptionalNumOfGp, OptionalGpID, ReducedIntegration, NumOfDim, NumOfNodePerElem)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
integer(kind=int32), intent(in), optional :: elem_id
real(kind=real64), intent(in), optional :: nod_coord(:,:)
real(kind=real64), intent(in), optional :: nod_coord_n(:,:)
integer(kind=int32), intent(in), optional :: elem_nod(:,:)
integer(kind=int32), intent(in), optional :: OptionalNumOfNode
integer(kind=int32), intent(in), optional :: OptionalNumOfOrder
integer(kind=int32), intent(in), optional :: OptionalNumOfDim
integer(kind=int32), intent(in), optional :: OptionalNumOfGp
integer(kind=int32), intent(in), optional :: OptionalGpID
logical, intent(in), optional :: ReducedIntegration
integer(kind=int32), intent(in), optional :: NumOfDim
integer(kind=int32), intent(in), optional :: NumOfNodePerElem

public subroutine DeallocateShapeFunction(obj)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine GetGaussPoint(obj)

Triangular or Tetrahedral

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine SetGaussPoint(obj)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine GetShapeFunction(obj)

######################################################################### ####### ####### ####### + (1) ####### ####### ####### ####### ####### ######################################################################### ######################################################################### ####### ####### ####### +-----------------------+ ####### ####### (1) (2) ####### ####### ####### #########################################################################

Read more…

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine GetShapeFuncDer1(obj)

######################################################################### ####### ####### ####### + (1) ####### ####### ####### ####### ####### ######################################################################### ######################################################################### ####### ####### ####### +-----------------------+ ####### ####### (1) (2) ####### ####### ####### #########################################################################

Read more…

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine GetShapeFuncDer2(obj)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine GetElemCoord(obj, nod_coord, elem_nod, elem_id)

print *, obj%ElemCoord(j,1:m)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
real(kind=real64), intent(in) :: nod_coord(:,:)
integer(kind=int32), intent(in) :: elem_nod(:,:)
integer(kind=int32), intent(in) :: elem_id

public subroutine GetElemCoord_n(obj, nod_coord_n, elem_nod, elem_id)

print *, obj%ElemCoord_n(j,1:m)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
real(kind=real64), intent(in) :: nod_coord_n(:,:)
integer(kind=int32), intent(in) :: elem_nod(:,:)
integer(kind=int32), intent(in) :: elem_id

public subroutine getdu(obj)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine GetJmat(obj)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj

public subroutine exportShapeFunction(obj, restart, path)

Arguments

Type IntentOptional Attributes Name
class(ShapeFunction_), intent(inout) :: obj
logical, intent(in), optional :: restart
character(len=*), intent(in) :: path