Root_ Derived Type

type, public :: Root_


Components

Type Visibility Attributes Name Initial
type(FEMDomain_), public :: FEMDomain
real(kind=real64), public :: Thickness
real(kind=real64), public :: length
real(kind=real64), public :: width
real(kind=real64), public :: MaxThickness
real(kind=real64), public :: Maxlength
real(kind=real64), public :: Maxwidth
real(kind=real64), public :: center_bottom(3)
real(kind=real64), public :: center_top(3)
real(kind=real64), public :: radius_bottom(3)
real(kind=real64), public :: radius_top(3)
real(kind=real64), public :: outer_normal_bottom(3)
real(kind=real64), public :: outer_normal_top(3)
real(kind=real64), public :: rot_x = 0.0d0
real(kind=real64), public :: rot_y = 0.0d0
real(kind=real64), public :: rot_z = 0.0d0
real(kind=real64), public :: disp_x = 0.0d0
real(kind=real64), public :: disp_y = 0.0d0
real(kind=real64), public :: disp_z = 0.0d0
integer(kind=int32), public :: EdgeNodeID(4)
integer(kind=int32), public :: EdgeElemID(4)
real(kind=real64), public :: maxdiameter
real(kind=real64), public :: mindiameter
real(kind=real64), public :: minlength
integer(kind=int32), public, allocatable :: I_planeNodeID(:)
integer(kind=int32), public, allocatable :: I_planeElementID(:)
integer(kind=int32), public, allocatable :: II_planeNodeID(:)
integer(kind=int32), public, allocatable :: II_planeElementID(:)
integer(kind=int32), public :: A_PointNodeID
integer(kind=int32), public :: B_PointNodeID
integer(kind=int32), public :: A_PointElementID
integer(kind=int32), public :: B_PointElementID
integer(kind=int32), public :: xnum = 10
integer(kind=int32), public :: ynum = 10
integer(kind=int32), public :: znum = 10
real(kind=real64), public, allocatable :: DryDensity(:)
real(kind=real64), public, allocatable :: WaterContent(:)
real(kind=real64), public, allocatable :: YoungModulus(:)
real(kind=real64), public, allocatable :: PoissonRatio(:)
real(kind=real64), public, allocatable :: Density(:)
real(kind=real64), public, allocatable :: CarbonDiffusionCoefficient(:)
real(kind=real64), public, allocatable :: Stress(:,:,:)
real(kind=real64), public, allocatable :: Displacement(:,:)
real(kind=real64), public, allocatable :: BoundaryTractionForce(:,:)
real(kind=real64), public, allocatable :: BoundaryDisplacement(:,:)
real(kind=real64), public :: R_d = 1.0d0
real(kind=real64), public :: default_CarbonDiffusionCoefficient = 0.0010d0
logical, public :: already_grown = .false.
integer(kind=int32), public :: Division
type(Root_), public, pointer :: pRoot

Type-Bound Procedures

procedure, public :: Init => initRoot

  • public subroutine initRoot(obj, config, regacy, Thickness, length, width, MaxThickness, Maxlength, MaxWidth, rotx, roty, rotz, location, x_num, y_num, z_num)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout) :: obj
    character(len=*), intent(in), optional :: config
    logical, intent(in), optional :: regacy
    real(kind=real64), intent(in), optional :: Thickness
    real(kind=real64), intent(in), optional :: length
    real(kind=real64), intent(in), optional :: width
    real(kind=real64), intent(in), optional :: MaxThickness
    real(kind=real64), intent(in), optional :: Maxlength
    real(kind=real64), intent(in), optional :: MaxWidth
    real(kind=real64), intent(in), optional :: rotx
    real(kind=real64), intent(in), optional :: roty
    real(kind=real64), intent(in), optional :: rotz
    real(kind=real64), intent(in), optional :: location(3)
    integer(kind=int32), intent(in), optional :: x_num
    integer(kind=int32), intent(in), optional :: y_num
    integer(kind=int32), intent(in), optional :: z_num

procedure, public :: rotate => rotateRoot

  • public recursive subroutine rotateRoot(obj, x, y, z, reset)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    logical, intent(in), optional :: reset

procedure, public :: move => moveRoot

  • public recursive subroutine moveRoot(obj, x, y, z, reset)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z
    logical, intent(in), optional :: reset

procedure, public, pass :: connectRootRoot

  • public subroutine connectRootRoot(obj, direct, Root)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout) :: obj
    character(len=2), intent(in) :: direct
    class(Root_), intent(inout) :: Root

procedure, public, pass :: connectRootStem

  • public subroutine connectRootStem(obj, direct, Stem)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout) :: obj
    character(len=2), intent(in) :: direct
    class(Stem_), intent(inout) :: Stem

generic, public :: connect => connectRootRoot, connectRootStem

  • public subroutine connectRootRoot(obj, direct, Root)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout) :: obj
    character(len=2), intent(in) :: direct
    class(Root_), intent(inout) :: Root
  • public subroutine connectRootStem(obj, direct, Stem)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout) :: obj
    character(len=2), intent(in) :: direct
    class(Stem_), intent(inout) :: Stem

procedure, public :: rescale => rescaleRoot

  • public subroutine rescaleRoot(obj, x, y, z)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout), optional :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z

procedure, public :: resize => resizeRoot

  • public subroutine resizeRoot(obj, x, y, z)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout), optional :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z

procedure, public :: fix => fixRoot

  • public subroutine fixRoot(obj, x, y, z)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(inout), optional :: obj
    real(kind=real64), intent(in), optional :: x
    real(kind=real64), intent(in), optional :: y
    real(kind=real64), intent(in), optional :: z

procedure, public :: empty => emptyRoot

  • public function emptyRoot(obj) result(Root_is_empty)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(in) :: obj

    Return Value logical

procedure, public :: getCoordinate => getCoordinateRoot

  • public function getCoordinateRoot(obj, nodetype) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(in) :: obj
    character(len=*), intent(in) :: nodetype

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

procedure, public :: getVolume => getVolumeRoot

  • public function getVolumeRoot(obj) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(in) :: obj

    Return Value real(kind=real64)

procedure, public :: getBiomass => getBiomassRoot

  • public function getBiomassRoot(obj) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(in) :: obj

    Return Value real(kind=real64)

procedure, public :: gmsh => gmshRoot

  • public subroutine gmshRoot(obj, name)

    Arguments

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

procedure, public :: vtk => vtkRoot

  • public subroutine vtkRoot(obj, name, field_name)

    Arguments

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

procedure, public :: msh => mshRoot

  • public subroutine mshRoot(obj, name)

    Arguments

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

procedure, public :: stl => stlRoot

  • public subroutine stlRoot(obj, name)

    Arguments

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

procedure, public :: ply => plyRoot

  • public subroutine plyRoot(obj, name)

    Arguments

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

procedure, public :: export => exportRoot

  • public subroutine exportRoot(obj, FileName, RootID)

    Arguments

    Type IntentOptional Attributes Name
    class(Root_), intent(in) :: obj
    character(len=*), intent(in) :: FileName
    integer(kind=int32), intent(inout), optional :: RootID

procedure, public :: sync => syncRoot

  • public subroutine syncRoot(obj, from, mpid)

    Arguments

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

procedure, public :: nn => nnRoot

  • public function nnRoot(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: ne => neRoot

  • public function neRoot(this) result(ret)

    Arguments

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

    Return Value integer(kind=int32)

procedure, public :: remove => removeRoot

  • public subroutine removeRoot(this)

    Arguments

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