fedoo.weakform.StressEquilibrium

class StressEquilibrium(constitutivelaw, name='', nlgeom=None, space=None)

Weak formulation of the mechanical equilibrium equation for solids.

The main point to consider are:
  • This weak form can be used for solid in 3D or using a 2D plane assumption (plane strain or plane stress).

  • Include initial stress for non linear problems or if defined in the associated assembly.

  • This weak form accepts geometrical non linearities if simcoon is installed. (nlgeom should be in {True, ‘UL’, ‘TL’}. In this case the initial displacement is also considered and several different corotational formulation may be used by setting the corate attribute.

  • For nearly incompressible material, the F-bar method should be used by setting the fbar attribute to True.

  • For problems involving geometrical instabilities, the geometrical stiffness should be used by setting the geometric_stiffness attribute to True.

Parameters:
  • constitutivelaw (ConstitutiveLaw name (str) or ConstitutiveLaw object) – Material Constitutive Law (fedoo.constitutivelaw)

  • name (str) – name of the WeakForm

  • nlgeom (bool, 'UL' or 'TL', optional) – If True, the geometrical non linearities are activate based on the updated lagrangian method. This parameters is used only in the context of NonLinearProblems such as fedoo.problem.NonLinearStatic or fedoo.problem.NonLinearNewmark. If nlgeom == ‘UL’ the updated lagrangian method is used (same as True). If nlgeom == ‘TL’ the total lagrangian method is used. If not defined, the problem.nlgeom parameter is used instead.

  • space (ModelingSpace) – Modeling space associated to the weakform. If None is specified, the active ModelingSpace is considered.

__init__(constitutivelaw, name='', nlgeom=None, space=None)

Methods

StressEquilibrium.get_all()

Return the list of all weak forms.

StressEquilibrium.get_weak_equation(assembly, pb)

Get the weak equation related to the current problem state.

StressEquilibrium.initialize(assembly, pb)

Initialize the weakform at the begining of a problem.

StressEquilibrium.nvar(self)

Return the number of variables used in the modeling space associated to the WeakForm.

StressEquilibrium.reset()

StressEquilibrium.set_start(assembly, pb)

Start a new time increment.

StressEquilibrium.sum(wf1, wf2)

StressEquilibrium.to_start(assembly, pb)

Reset the current time increment.

StressEquilibrium.update(assembly, pb)

Update the weakform to the current state.

StressEquilibrium.update_2(assembly, pb)

Update the weakform to the current state.

StressEquilibrium.corate

Corotational strain mesure for strain.

StressEquilibrium.fbar

Set to True to use the F-bar method.

StressEquilibrium.geometric_stiffness

Set to True to add the geometric effects to the stiffness matrix.

StressEquilibrium.name

Return the name of the WeakForm.

StressEquilibrium.space

Return the ModelingSpace associated to the WeakForm if defined.

StressEquilibrium.nlgeom

Method used to treat the geometric non linearities. * Set to False if geometric non linarities are ignored. * Set to True or 'UL' to use the updated lagrangian method (update the mesh) * Set to 'TL' to use the total lagrangian method (base on the initial mesh with initial displacement effet).