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 — TypeAbstractAlgorithmAbstract type to define numerical method algorithms.
materialNonLinearity.BoundaryConds — TypeBoundaryCondsContains 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 — TypeIsotropicBiLinearIsotropic 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 — TypeIterPAramsStore the criterion stop at each load increment.
materialNonLinearity.LinearElastic — TypeLinearElasticIsotropic 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 — TypeMaterialModelAbstract type to define material constitutive model.
materialNonLinearity.Mesh — TypeMeshContains 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 — TypeModelSolStores the solution of the problem.
materialNonLinearity.Rectangle — TypeRectangleRectangular 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 — TypeSectionAbstract type to define element sections.
materialNonLinearity.StressArraySets — TypeStressArraySetsStruct that defines settings to compute the stress array.
materialNonLinearity.UserModel — TypeUserModelUser 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 σ, ∂σ∂ε
endFields:
ne::Int64: Gauss integration points along the element length.ns::Int64: Gauss integration points along the section height.