pyxfem.solidmechanics.hyperelasticity_solver module

Created on April 10th 07:43:08 2024

@author: nchevaug

class pyxfem.solidmechanics.hyperelasticity_solver.HyperElasticitySolver(mesh: SMesh, matlaw: HyperElasticMaterial, physname2dirichlet: dict | None = None, physname2neumann: dict | None = None, source=array([0., 0.]), space_constructor=<class 'pyxfem.core.function_spaces.FEMSpaceP1'>)[source]

Bases: object

A class to set up and compute a 2d linear Hyper Elastic problem with FEM method

compute_F(U: NDArray) → NDArray[source]

compute F, the gradient of the position field at each gauss point

compute_energy(U: NDArray[float64]) → float[source]

return the stored energy associated to nodal displacement e

compute_external_forces(U: NDArray[float64], lamb: float64)[source]
compute_internal_forces(U: NDArray[float64]) → NDArray[float64][source]

compute the internal force vecor F_int, such as F_int.delta_u = delta w_int

compute_internal_stiffness(U: NDArray[float64]) → csr_array[source]
compute_internal_stiffness_blocs(U: NDArray[float64]) → csr_array[source]
compute_internal_stiffness_blocs_v0(U: NDArray[float64]) → csr_array[source]
predictor_corrector(U0: NDArray[float64], loadfac0: float64, loadinc: float64, **newton_kwargs) → NDArray[float64][source]

solve the non linear system

pyxfem.solidmechanics.hyperelasticity_solver.solve_loadstep(mesh: SMesh, dirichlet_bc, loadsteps, savedir: None | str = None, popup_gmsh=False, paraviewout=True, **newton_kwargs)[source]

example main program