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 Matlabfsolvefrom 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.