FEA with general material models on beam elements
Introduction
Repository to perform finite element analyses of 2d noded Euler Bernoulli beam elements with linear and non-linear constitutive models.
materialNonLinearity.AbstractAlgorithm
— TypeAbstractAlgorithm
Abstract type to define numerical method algorithms.
materialNonLinearity.BoundaryConds
— TypeBoundaryConds
Contains the boundary conditions of the structure.
Includes the support definition and the external forces.
Fields:
suppMatrix::Matrix
: Matrix whose i-th row contains the fixed degrees of freedom of the fixed i-th node according to the structure: [Nodeᵢ uz θy
].nodalForceMatrix::Matrix
: Matrix whose i-th row contains the external nodal forces applied to the loaded i-th node according the structure: [Nodeᵢ Fz My
].
materialNonLinearity.IsotropicBiLinear
— TypeIsotropicBiLinear
Isotropic BiLinear constitutive model i.e. Linear softening or Linear Hardening.
Stress is proportional to strain given by either the Elasticity Modulus E
and the Elastoplastic tangent modulus C
.
Change in proportionality occurs after the stress reaches a given value σY0
.
Fields:
E::Float64
: Young Elasticity modulus.σY0::Float64
: Initial yield stress.K::Float64
: Slope of the hardening function.ne::Int64
: Gauss integration points along the element length.ns::Int64
: Gauss integration points along the section height.
materialNonLinearity.IterParams
— TypeIterPArams
Store the criterion stop at each load increment.
materialNonLinearity.LinearElastic
— TypeLinearElastic
Isotropic Linear elastic constitutive model.
Stress is proportional to strain given by Elasticity Modulus E
.
Fields:
E::Float64
: Young Elasticity modulus.ne::Int64
: Gauss integration points along the element length.ns::Int64
: Gauss integration points along the section height.
materialNonLinearity.MaterialModel
— TypeMaterialModel
Abstract type to define material constitutive model.
materialNonLinearity.Mesh
— TypeMesh
Contains the mesh node coordinates and conectivity matrix.
Fields:
nodesMat::Matrix{Float64}
: Matrix containing the (xᵢ,zᵢ
) coordinates of the i-th node.conecMat::Matrix
: Matrix whose i-th row contains the information of the i-th element according the structure: [Material, Section, (nodeᵢ, nodeⱼ)
].
materialNonLinearity.ModelSol
— TypeModelSol
Stores the solution of the problem.
materialNonLinearity.Rectangle
— TypeRectangle
Rectangular section.
Fields:
b::Float64
: Section width.h::Float64
: Section height.A::Float64
: Section area.Iy::Float64
: Second moment of inertia.
Note:A
and Iy
are computed internally, only provide fields b
and h
.
materialNonLinearity.Section
— TypeSection
Abstract type to define element sections.
materialNonLinearity.StressArraySets
— TypeStressArraySets
Struct that defines settings to compute the stress array.
materialNonLinearity.UserModel
— TypeUserModel
User defined constitutive model.
The user shall use import materialNonLinearity: constitutive_model
and define the function constitutive_model
as follows.
function constitutive_model(ElemMaterialModel::UserModel, εₖ)
...
return σ, ∂σ∂ε
end
Fields:
ne::Int64
: Gauss integration points along the element length.ns::Int64
: Gauss integration points along the section height.