ElastoPlasticity_ Derived Type

type, public :: ElastoPlasticity_


Components

Type Visibility Attributes Name Initial
type(FEMSolver_), public :: femsolver
type(EP_Domain_), public, allocatable :: ep_domain(:)
real(kind=real64), public :: tol = dble(1.0e-5)
real(kind=real64), public :: gravity_accel(1:3) = [0.0d0, 0.0d0, -9.810d0]
integer(kind=int32), public :: MAX_NEWTON_LOOP_ITR = 10000

Type-Bound Procedures

procedure, public :: init => initElastoPlasticity

  • public subroutine initElastoPlasticity(this, femdomains, default_YieldFunction, default_YieldFunction_params, default_PlasticPotential, default_PlasticPotential_params)

    Arguments

    Type IntentOptional Attributes Name
    class(ElastoPlasticity_), intent(inout) :: this
    type(FEMDomain_), intent(in), target :: femdomains(:)
    procedure(P_PotentialFunction) :: default_YieldFunction
    real(kind=real64), intent(in) :: default_YieldFunction_params(:)
    procedure(P_PotentialFunction) :: default_PlasticPotential
    real(kind=real64), intent(in) :: default_PlasticPotential_params(:)

procedure, public :: solve => solveElastoPlasticity

  • public subroutine solveElastoPlasticity(this, YoungModulus, PoissonRatio, Density, fix_node_list_x, fix_node_list_y, fix_node_list_z, fix_value_list_x, fix_value_list_y, fix_value_list_z)

    Arguments

    Type IntentOptional Attributes Name
    class(ElastoPlasticity_), intent(inout) :: this
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in) :: PoissonRatio(:)
    real(kind=real64), intent(in) :: Density(:)
    integer(kind=int32), intent(in), optional :: fix_node_list_x(:)
    integer(kind=int32), intent(in), optional :: fix_node_list_y(:)
    integer(kind=int32), intent(in), optional :: fix_node_list_z(:)
    real(kind=real64), intent(in), optional :: fix_value_list_x(:)
    real(kind=real64), intent(in), optional :: fix_value_list_y(:)
    real(kind=real64), intent(in), optional :: fix_value_list_z(:)

procedure, public :: solve_increment => solve_increment_ElastoPlasticity

  • public subroutine solve_increment_ElastoPlasticity(this, YoungModulus, PoissonRatio, delta_Density, fix_node_list_x, fix_node_list_y, fix_node_list_z, fix_value_list_x, fix_value_list_y, fix_value_list_z)

    Arguments

    Type IntentOptional Attributes Name
    class(ElastoPlasticity_), intent(inout) :: this
    real(kind=real64), intent(in) :: YoungModulus(:)
    real(kind=real64), intent(in) :: PoissonRatio(:)
    real(kind=real64), intent(in) :: delta_Density(:)
    integer(kind=int32), intent(in), optional :: fix_node_list_x(:)
    integer(kind=int32), intent(in), optional :: fix_node_list_y(:)
    integer(kind=int32), intent(in), optional :: fix_node_list_z(:)
    real(kind=real64), intent(in), optional :: fix_value_list_x(:)
    real(kind=real64), intent(in), optional :: fix_value_list_y(:)
    real(kind=real64), intent(in), optional :: fix_value_list_z(:)

procedure, public, pass :: edit_YF_PP_ElastoPlasticity

generic, public :: edit => edit_YF_PP_ElastoPlasticity

procedure, public :: export => exportElastoPlasticity

  • public subroutine exportElastoPlasticity(this, name, step, amp)

    Arguments

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

procedure, public :: exportField => exportFieldElastoPlasticity

procedure, public :: importField => importFieldElastoPlasticity

  • public subroutine importFieldElastoPlasticity(this, name, num_domain)

    Arguments

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

procedure, public :: get_internal_force => get_internal_forceElastoPlasticity

  • public function get_internal_forceElastoPlasticity(this, dU) result(ret)

    Arguments

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

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

procedure, public :: update_stress_for_increment => update_stress_for_incrementElastoPlasticity

procedure, public :: get_delta_internal_force => get_delta_internal_forceElastoPlasticity

procedure, public :: get_external_force => get_external_forceElastoPlasticity

procedure, public :: fill_zero_at_DBC => fill_zero_at_DBCElastoPlasticity

  • public subroutine fill_zero_at_DBCElastoPlasticity(this, values, idx)

    Arguments

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

procedure, public :: getYieldFunctionTemplate => getYieldFunctionTemplateElastoPlasticity

procedure, public :: getPlasticStrain => getPlasticStrain_ElastoPlasticity

  • public function getPlasticStrain_ElastoPlasticity(this, GaussPointID, ElementID) result(ret)

    Arguments

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

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

procedure, public :: getPlasticStrain_n => getPlasticStrain_n_ElastoPlasticity

  • public function getPlasticStrain_n_ElastoPlasticity(this, GaussPointID, ElementID) result(ret)

    Arguments

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

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

procedure, public :: getStrain => getStrain_ElastoPlasticity

  • public function getStrain_ElastoPlasticity(this, GaussPointID, ElementID) result(ret)

    Arguments

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

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

procedure, public :: getCauchyStress => getCauchyStress_ElastoPlasticity

  • public function getCauchyStress_ElastoPlasticity(this, GaussPointID, ElementID) result(ret)

    Arguments

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

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

procedure, public :: getdCauchyStress => getdCauchyStress_ElastoPlasticity

  • public function getdCauchyStress_ElastoPlasticity(this, GaussPointID, ElementID) result(ret)

    Arguments

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

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

procedure, public :: getTractionForce => getTractionForce_ElastoPlasticity

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

    Arguments

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

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

procedure, public :: setPlasticStrain => setPlasticStrain_ElastoPlasticity

  • public subroutine setPlasticStrain_ElastoPlasticity(this, ElementID, GaussPointID, PlasticStrain)

    Arguments

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

procedure, public :: setCauchyStress => setCauchyStress_ElastoPlasticity

  • public subroutine setCauchyStress_ElastoPlasticity(this, ElementID, GaussPointID, CauchyStress)

    Arguments

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

procedure, public :: setdCauchyStress => setdCauchyStress_ElastoPlasticity

  • public subroutine setdCauchyStress_ElastoPlasticity(this, ElementID, GaussPointID, dCauchyStress)

    Arguments

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

procedure, public :: addStrain => addStrain_ElastoPlasticity

  • public subroutine addStrain_ElastoPlasticity(this, ElementID, GaussPointID, dStrain)

    Arguments

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

procedure, public :: setdStrain => setdStrain_ElastoPlasticity

  • public subroutine setdStrain_ElastoPlasticity(this, ElementID, GaussPointID, dStrain)

    Arguments

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

procedure, public :: reset => rezeroElastoPlasticity

procedure, public :: rezero => rezeroElastoPlasticity

procedure, public :: I1 => I1ElastoPlasticity

  • public function I1ElastoPlasticity(this) result(I1)

    Arguments

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

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

procedure, public :: J2 => J2ElastoPlasticity

  • public function J2ElastoPlasticity(this) result(J2)

    Arguments

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

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

procedure, public :: I1_e => I1_e_ElastoPlasticity

  • public function I1_e_ElastoPlasticity(this) result(I1)

    Arguments

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

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

procedure, public :: J2_e => J2_e_ElastoPlasticity

  • public function J2_e_ElastoPlasticity(this) result(J2)

    Arguments

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

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