FEM - Functions

Index

Material_Basis

PeriLab.Solver_Manager.Material_Basis.check_symmetryMethod
check_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.
source
PeriLab.Solver_Manager.Material_Basis.distribute_forces!Method
distribute_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.
source
PeriLab.Solver_Manager.Material_Basis.distribute_forces!Method
distribute_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.
source
PeriLab.Solver_Manager.Material_Basis.flaw_functionMethod
flaw_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.
source
PeriLab.Solver_Manager.Material_Basis.get_Hooke_matrixFunction
get_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.
source
PeriLab.Solver_Manager.Material_Basis.get_symmetryMethod
get_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)

source