FEM - Functions
Index
PeriLab.Solver_Manager.Material_Basis.check_symmetry
PeriLab.Solver_Manager.Material_Basis.distribute_forces!
PeriLab.Solver_Manager.Material_Basis.distribute_forces!
PeriLab.Solver_Manager.Material_Basis.flaw_function
PeriLab.Solver_Manager.Material_Basis.get_Hooke_matrix
PeriLab.Solver_Manager.Material_Basis.get_all_elastic_moduli
PeriLab.Solver_Manager.Material_Basis.get_strain
PeriLab.Solver_Manager.Material_Basis.get_symmetry
Material_Basis
PeriLab.Solver_Manager.Material_Basis.check_symmetry
— Methodcheck_symmetry(prop::Dict, dof::Int64)
Check if the symmetry information is present in the material dictionary.
Arguments
prop::Dict
: A dictionary containing material information.dof::Int64
: The number of degrees of freedom.
Returns
true
: If the symmetry information is present.
PeriLab.Solver_Manager.Material_Basis.distribute_forces!
— Methoddistribute_forces!(nodes::AbstractVector{Int64}, nlist::Vector{Vector{Int64}}, nlist_filtered_ids::Vector{Vector{Int64}}, bond_force::Vector{Matrix{Float64}}, volume::Vector{Float64}, bond_damage::Vector{Vector{Float64}}, displacements::Matrix{Float64}, bond_norm::Vector{Matrix{Float64}}, force_densities::Matrix{Float64})
Distribute the forces on the nodes
Arguments
nodes::AbstractVector{Int64}
: The nodes.nlist::Vector{Vector{Int64}}
: The neighbor list.nlist_filtered_ids::Vector{Vector{Int64}},
: The filtered neighbor list.bond_force::Vector{Matrix{Float64}}
: The bond forces.volume::Vector{Float64}
: The volumes.bond_damage::Vector{Vector{Float64}}
: The bond damage.displacements::Matrix{Float64}
: The displacements.bond_norm::Vector{Matrix{Float64}}
: The pre defined bond normal.force_densities::Matrix{Float64}
: The force densities.
Returns
force_densities::Matrix{Float64}
: The force densities.
PeriLab.Solver_Manager.Material_Basis.distribute_forces!
— Methoddistribute_forces!(nodes::AbstractVector{Int64}, nlist::Vector{Vector{Int64}}, bond_force::Vector{Matrix{Float64}}, volume::Vector{Float64}, bond_damage::Vector{Vector{Float64}}, force_densities::Matrix{Float64})
Distribute the forces on the nodes
Arguments
nodes::AbstractVector{Int64}
: The nodes.nlist::Vector{Vector{Int64}}
: The neighbor list.bond_force::Vector{Matrix{Float64}}
: The bond forces.volume::Vector{Float64}
: The volumes.bond_damage::Vector{Vector{Float64}}
: The bond damage.force_densities::Matrix{Float64}
: The force densities.
Returns
force_densities::Matrix{Float64}
: The force densities.
PeriLab.Solver_Manager.Material_Basis.flaw_function
— Methodflaw_function(params::Dict, coor::Union{Vector{Int64},Vector{Float64}}, stress::Float64)
Allows the modification of the yield stress at a specific position. This is typically used as starting point for plastic deformation.
Arguments
params::Dict
: A dictionary containing material information.coor::Union{Vector{Int64},Vector{Float64}, SubArray}
: Coordinate of the current point.stress::Float64
: stresses to be modified.
Returns
stress
::Float64: the modified stresses.
PeriLab.Solver_Manager.Material_Basis.get_Hooke_matrix
— Functionget_Hooke_matrix(datamanager::Module, parameter::Dict, symmetry::String, dof::Int64, ID::Int64=1)
Returns the Hooke matrix of the material.
Arguments
datamanager::Module
: The data manager.parameter::Union{Dict{Any,Any},Dict{String,Any}}
: The material parameter.symmetry::String
: The symmetry of the material.dof::Int64
: The degree of freedom.ID::Int64=1
: ID of the point. Needed for point wise defined material properties.
Returns
matrix::Matrix{Float64}
: The Hooke matrix.
PeriLab.Solver_Manager.Material_Basis.get_all_elastic_moduli
— Methodget_all_elastic_moduli(datamanager::Module, parameter::Union{Dict{Any,Any},Dict{String,Any}})
Returns the elastic moduli of the material.
Arguments
parameter::Union{Dict{Any,Any},Dict{String,Any}}
: The material parameter.
PeriLab.Solver_Manager.Material_Basis.get_strain
— Methodget_strain(stress_NP1::Matrix{Float64}, hooke_matrix::Matrix{Float64})
Arguments
stress_NP1::Matrix{Float64}
: Stress.hooke_matrix::Matrix{Float64}
: Hooke matrix
returns
strain::Matrix{Float64}
: Strain
PeriLab.Solver_Manager.Material_Basis.get_symmetry
— Methodget_symmetry(material::Dict)
Return the symmetry information from the given material dictionary.
Arguments
material::Dict
: A dictionary containing material information.
Returns
- If the key "Symmetry" is present in the dictionary, the corresponding value is returned.
- If the key is not present, the default value "3D" is returned.
Example
```julia materialdict = Dict("Symmetry" => "Cubic", "Color" => "Red") symmetry = getsym(material_dict)