fedoo.constitutivelaw.PoroFluidProperties

class PoroFluidProperties(permeability, fluid_viscosity=1.0, biot_coefficient=1.0, biot_modulus=None, initial_porosity=0.8, fluid_density=1000.0, name='')

Fluid-phase parameters for a saturated porous medium.

Holds the Biot coefficient, the Biot modulus, the intrinsic permeability, the fluid viscosity, and the initial Lagrangian porosity. The skeleton constitutive law (hyperelastic, viscoelastic, …) is provided separately and remains unaware of the pore pressure. The Biot/Terzaghi coupling is handled at the weak form level (see fedoo.weakform.PoroMechanics).

Parameters:
  • permeability (float or callable) – Intrinsic permeability k. If callable, signature is k(J, sv) -> float or ndarray for deformation-dependent permeability (e.g. HolmesMowPermeability, KozenyCarmanPermeability).

  • fluid_viscosity (float, default 1.0) – Dynamic viscosity mu_f of the pore fluid. The Darcy mobility used in the mass balance is k / mu_f. Use mu_f = 1 if permeability already represents the mobility k / mu_f.

  • biot_coefficient (float, default 1.0) – Biot coefficient alpha. The default 1.0 is the Terzaghi limit (incompressible skeleton constituent), appropriate for most soft biological tissues.

  • biot_modulus (float or None, default None) – Biot modulus M. The storage coefficient is 1 / M. If None, the fluid is treated as fully incompressible (1 / M = 0).

  • initial_porosity (float, default 0.8) – Initial Lagrangian fluid volume fraction phi_f0 in [0, 1].

  • fluid_density (float, default 1000.0) – Reference fluid density. Stored but not used yet: reserved for a future fluid gravity/body-force term.

  • name (str, default "")

__init__(permeability, fluid_viscosity=1.0, biot_coefficient=1.0, biot_modulus=None, initial_porosity=0.8, fluid_density=1000.0, name='')

Methods

PoroFluidProperties.get_all()

Return a dict with all the known ConstitutiveLaw (with a name).

PoroFluidProperties.get_local_frame([assembly])

Return material frames, resolved at assembly Gauss points.

PoroFluidProperties.get_mobility([J, sv])

Return the isotropic mobility tensor k(J) / mu_f as a 3x3 list.

PoroFluidProperties.get_storage()

Return the storage coefficient 1 / M (zero if fluid incompressible).

PoroFluidProperties.initialize(assembly, pb)

Initialize the constitutive law for the current problem.

PoroFluidProperties.reset()

Reset the constitutive law.

PoroFluidProperties.set_local_frame(local_frame)

Define the material coordinate frame.

PoroFluidProperties.set_start(assembly, pb)

Begin a new time iteration.

PoroFluidProperties.to_start(assembly, pb)

Restart the current time iteration.

PoroFluidProperties.update(assembly, pb)

Update the constitutive law for the current problem state.

PoroFluidProperties.name

Name of the constitutive law.

PoroFluidProperties.is_initialized

Tag set to True once the law is intialized.