fedoo.weakform.PoroMechanicsSimple

class PoroMechanicsSimple(skeleton_law, fluid_props, name='', nlgeom=None, space=None)

Non-mixed (u, PorePressure) poromechanics weak form.

This composite weak form contains:

  • PoroMomentumSimple — momentum balance and Biot coupling without a skeleton-pressure Lagrange multiplier.

  • PoroDarcy — Darcy diffusion.

  • PoroMassStorage — storage and volumetric coupling.

This is the recommended default variant. Use it in particular for problems with free-traction boundaries (Mandel consolidation, unconfined compression of cartilage, soft tissue indentation) where the mixed PoroMechanics oscillates. No bulk_modulus parameter is required. For soft tissues, remember that the near-incompressibility of the tissue is the undrained response already carried by the PorePressure field: a compressible skeleton law (drained nu ~ 0.1..0.3) with this variant is usually the right model. For stability in the undrained limit prefer a Taylor-Hood interpolation (quadratic u, linear PorePressure via a CombinedElement — see the poromechanics documentation).

With simcoon hyperelastic laws use nlgeom="UL" (log_R corotational, the simcoon-native mode) and keep the compression below roughly 12% — see the Limitations section of the poromechanics documentation.

Parameters:
  • skeleton_law (ConstitutiveLaw) – Skeleton constitutive law.

  • fluid_props (PoroFluidProperties) – Fluid-phase constitutive properties.

  • name (str, optional) – Name of the weak form. Defaults to the skeleton-law name or "poromechanics_simple".

  • nlgeom (bool or {'TL', 'UL'}, optional) – Geometric-nonlinearity formulation. "2Daxi" supports small strain and "UL"; "TL" raises.

  • space (ModelingSpace, optional) – Modeling space. Defaults to the active modeling space.

__init__(skeleton_law, fluid_props, name='', nlgeom=None, space=None)

Methods

PoroMechanicsSimple.__getitem__(item)

PoroMechanicsSimple.copy()

Return a recursive shallow copy of the weak-form sum.

PoroMechanicsSimple.get_all()

Return the list of all weak forms.

PoroMechanicsSimple.get_dissipation()

Return the optional dissipative provider for a time integrator.

PoroMechanicsSimple.get_storage()

Return the optional storage weakform for a time integrator.

PoroMechanicsSimple.get_weak_equation(...)

PoroMechanicsSimple.initialize(assembly, pb)

PoroMechanicsSimple.iter_leaf()

Iterate over the already flattened list of weakforms.

PoroMechanicsSimple.reset()

PoroMechanicsSimple.set_damping([damping])

Mechanical alias for set_dissipation.

PoroMechanicsSimple.set_dissipation([...])

Attach a dissipative contribution.

PoroMechanicsSimple.set_inertia(...)

Mechanical alias for set_storage.

PoroMechanicsSimple.set_start(assembly, pb)

PoroMechanicsSimple.set_storage(storage[, ...])

Attach a time-storage weakform to this static weakform.

PoroMechanicsSimple.sum(wf1, wf2)

PoroMechanicsSimple.to_start(assembly, pb)

PoroMechanicsSimple.update(assembly, pb)

PoroMechanicsSimple.update_2(assembly, pb)

PoroMechanicsSimple.__getitem__(item)

PoroMechanicsSimple.list_weakform

PoroMechanicsSimple.name

Return the name of the WeakForm.

PoroMechanicsSimple.nvar

Number of variables in the modeling space associated to the WeakForm.

PoroMechanicsSimple.space

Return the ModelingSpace associated to the WeakForm if defined.