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
PoroMechanicsSimpleinstead (the recommended default).- Parameters:
skeleton_law (ConstitutiveLaw) – Skeleton constitutive law. This can be
fedoo.constitutivelaw.ElasticIsotropfor 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
nlgeomis notFalse.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
Return a recursive shallow copy of the weak-form sum.
Return the list of all weak forms.
Return the optional dissipative provider for a time integrator.
Return the optional storage weakform for a time integrator.
PoroMechanics.get_weak_equation(assembly, pb)PoroMechanics.initialize(assembly, pb)Iterate over the already flattened list of weakforms.
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)Return the name of the WeakForm.
Number of variables in the modeling space associated to the WeakForm.
Return the ModelingSpace associated to the WeakForm if defined.