fedoo.weakform.PoroMechanics

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

Full mixed (u, PorePressure, Pressure) poromechanics weak form.

This composite weak form contains:

  • PoroMomentum — momentum balance with Terzaghi coupling.

  • PoroDarcy — steady Darcy diffusion of pore pressure.

  • PoroMassStorage — storage and volumetric coupling.

Reserve this three-field variant for a genuinely quasi-incompressible skeleton (drained Poisson ratio close to 0.5) with well-constrained (confined) boundaries: with a free-traction face the skeleton Lagrange multiplier is under-constrained and the solution oscillates — use PoroMechanicsSimple instead (the recommended default).

Parameters:
  • skeleton_law (ConstitutiveLaw) – Skeleton constitutive law. This can be fedoo.constitutivelaw.ElasticIsotrop for small-strain analysis or a suitable finite-strain constitutive law.

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

  • bulk_modulus (float, optional) – Skeleton bulk modulus. Required when nlgeom is not False.

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

  • 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, bulk_modulus=None, name='', nlgeom=None, space=None)

Methods

PoroMechanics.__getitem__(item)

PoroMechanics.copy()

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

PoroMechanics.get_all()

Return the list of all weak forms.

PoroMechanics.get_dissipation()

Return the optional dissipative provider for a time integrator.

PoroMechanics.get_storage()

Return the optional storage weakform for a time integrator.

PoroMechanics.get_weak_equation(assembly, pb)

PoroMechanics.initialize(assembly, pb)

PoroMechanics.iter_leaf()

Iterate over the already flattened list of weakforms.

PoroMechanics.reset()

PoroMechanics.set_damping([damping])

Mechanical alias for set_dissipation.

PoroMechanics.set_dissipation([dissipation, ...])

Attach a dissipative contribution.

PoroMechanics.set_inertia(density_or_storage)

Mechanical alias for set_storage.

PoroMechanics.set_start(assembly, pb)

PoroMechanics.set_storage(storage[, evolution])

Attach a time-storage weakform to this static weakform.

PoroMechanics.sum(wf1, wf2)

PoroMechanics.to_start(assembly, pb)

PoroMechanics.update(assembly, pb)

PoroMechanics.update_2(assembly, pb)

PoroMechanics.__getitem__(item)

PoroMechanics.list_weakform

PoroMechanics.name

Return the name of the WeakForm.

PoroMechanics.nvar

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

PoroMechanics.space

Return the ModelingSpace associated to the WeakForm if defined.