Initial value problems¶
The finite element (FE) information and methods are defined in a Matlab object called NL_2D_FEM
.
An instance of the FE model (i.e. a new FE model) can be created using the default constructor:
model = NL_2D_FEM
.
This creates an object model
containing the data of
a given problem and methods to perform the data analysis.
The attributes and methods of the NL_2D_FEM
class (denoted model
) are given below:
Attributes¶
model.geom
: The geometry of the model (key points and lines of the geometry)model.geom.geom_node
: List of number and coordinates of the key points of the geometry. Each line is of the type (point number, x coordinate, y coordinate).model.geom.geom_element
: List of lines in the geometry connecting the nodes. Each line is of the type (line number, point 1, point 2).model.geom.discretisation
: List of number of elements in each line (list of integers, with size the number of lines of the geometry).
model.prop
: Element cross-section and material properties (constant properties for all elements of the model)model.prop.area
: Area of the cross-section.model.prop.inertia
: Second moment of area of the cross-section.model.prop.shear_coeff_k
: Shear coefficient of the cross-section.model.prop.density
: Material density.model.prop.young_mod
: Material Young’s modulus.model.prop.shear_mod
: Material shear modulus.model.prop.poisson
: Material Poisson’s ratio.model.prop.alpha
: Material damping coefficient (linear Rayleigh damping).
model.mesh
: mesh of the FE modelmodel.mesh.nodes
: List of number and coordinates of the nodes of the mesh. Each line is of the type (node number, x coordinate, y coordinate).model.mesh.connect
: Connectivity table, textit{i.e.} list of elements of the mesh. Each line is of the type (element number, node 1, node 2).model.mesh.number_nodes
: Total number of nodes in the mesh.model.mesh.number_elements
: Total number of elements in the mesh.
model.visu
: Visualization information for displaying resultsmodel.visu.visu_node_list
: List (cell array) of observed node and degree of freedom (dof).**
model.visu.visu_node_list{n}
is a structure with two fields: a)mds.visu.visu_node_list{n}.node
: Node number, and b)mds.visu.visu_node_list{n}.dof
: List of dof number(s).model.visu.dof
: List of indices of observed dof in the assembled vector.
model.boundary
: Boundary conditions informationmodel.boundary.bc_node_list
: List (cell array) of boundary condition nodes and dof.**
mds.boundary.bc_node_list{n}
is a structure with two fields: a)mds.boundary.bc_node{n}.node
: Node number, and b)mds.boundary.bc_node{n}.dof
: List of dof number(s).model.boundary.dof_list
: List of indices of all dof in the assembled vector.model.boundary.prescribed_dof
: List of indices of all prescribed dof (displacement or rotation set to zero).model.boundary.active_dof
: List of indices of all non-boundary condition dof.
model.loads
: Loads (static and periodic, point force and distributed loads)
model.loads.static
: Static loads.
model.loads.static.static_ponctual_force_node_list
: List (cell array) of forced node(s) and dof.**
model.loads.static.static_ponctual_force_node_list{n}
is a structure with three fields: a)model.loads.static.static_ponctual_force_node_list{n}.node
: Node number, b)model.loads.static.static_ponctual_force_node_list{n}.dof
: List of dof number(s), and c)model.loads.static.static_ponctual_force_node_list{n}.amplitude
: List of force amplitudes (one amplitude for each dof in the previous field).
model.loads.static.static_distributed_force_direction
: List of directions among (1) x-axis (2) y-axis or (3) moment.
model.loads.static.static_distributed_force_amplitude
: List of amplitudes (linear force density).
model.loads.periodic
: Periodic loads
model.loads.periodic.periodic_ponctual_force_node_list
: List (cell array) of forced node(s) and dof.**
model.loads.periodic.periodic_ponctual_force_node_list{n}
is a structure with three fields: a)model.loads.periodic.periodicponctual_force_node_list{n}.node
: Node number, b)model.loads.periodic.periodic_ponctual_force_node_list{n}.dof
: List of dof number(s), and c)model.loads.periodic.periodic_ponctual_force_node_list{n}.amplitude
: List of force amplitudes (one amplitude for each dof in the previous field).
model.loads.periodic.periodic_distributed_force_direction
: List of direction among (1) x-axis (2) y-axis or (3) moment.
model.loads.periodic.periodic_distributed_force_amplitude
: List of amplitudes (linear force density).
model.matrices
: Assembled matrices of the modelmodel.matrices.mass
: Mass matrix.model.matrices.damping
: Damping matrix.model.matrices.stiffness_at_origin
: Linear stiffness matrix (around undeformed (reference) configuration).model.matrices.tangent_stiffness_at_qs
: Unused.
model.vectors
: Assembled vectors of the modelmodel.vectors.null_vector
: Assembled vector of dof full of zeros.model.vectors.static_forces
: Assembled vector of static forces.model.vectors.periodic_forces
: Assembled vector (matrix) of periodic forces (each row corresponds to a harmonic).model.vectors.static_solution
: Unused.
model.solver
: Solver informationmodel.solver.type
:'homemade'
: Default, solve NL system with a simple Newton method, or'fsolve'
: solve NL system with Matlabfsolve
from optimization toolbox).model.solver.tol_res
: Residual tolerance.model.solver.tol_step
: Step tolerance.model.solver.n_iter_max
: Number of maximum iterations for Newton’s method.
Methods¶
Initialization methods¶
model.set_model_from_mds
: Set the model attributes from a model data structuremds
.model.set_geom
: Set the geometry of the model (key points and lines of the geometry).model.set_prop
: Set the cross-section and material properties.model.set_boundary
: Set the boundary conditions.model.set_visu
: Set the visualization information for displaying result.model.set_static_loads
: Set the static loads (point force and distributed loads).model.set_periodic_loads
: Set the periodic loads (point force and distributed loads).model.set_mesh
: Set mesh from user inputs.