pyoomph.equations.solid module
- class pyoomph.equations.solid.BaseSolidConstitutiveLaw(use_subexpressions=True)[source]
Bases:
objectBase class for solid constitutive laws. The method get_sigma must be implemented in derived classes.
- Parameters:
use_subexpressions (bool, optional) – Use subexpressions for the tensor entries. Defaults to True.
- get_gij(dim, isotropic_growth_factor=1)[source]
Returns the covariant metric tensor of the undeformed configuration. This is the identity matrix in Cartesian coordinates.
- get_sigma(dim, isotropic_growth_factor=1, pressure_var=None)[source]
Returns the second Piola-Kirchhoff stress tensor. The method must be implemented in derived classes.
- Parameters:
dim (
int) – Element dimension.isotropic_growth_factor (
Union[Expression,int,float,None]) – Expression or numerical value representing the isotropic growth factor. Defaults to 1.pressure_var (Optional[Expression], optional) – Pressure variable for incompressible cases. Defaults to None.
- is_incompressible()[source]
If this returns True, the constitutive law is incompressible. This means that the determinant of the deformation gradient is equal to the determinant of the undeformed configuration. The solid equations will then introduce a pressure variable that is used to enforce this condition.
- class pyoomph.equations.solid.DeformableSolidEquations(constitutive_law, mass_density=0, bulkforce=0, coordinate_space=None, first_order_time_derivative=False, pressure_space='DL', with_error_estimator=False, isotropic_growth_factor=1, modulus_for_scaling=None, scale_for_FSI=False)[source]
Bases:
BaseDeformableSolidEquationsNonlinear solid elasticity equations for deformable solids. Requires a constitutive law, which gives the particular material properties.
- Parameters:
constitutive_law (
BaseSolidConstitutiveLaw) – Particular solid constitutive law, which must be derived from BaseSolidConstitutiveLaw.mass_density (
Union[Expression,int,float]) – Mass density (relevant for the inertia term in temporal dynamics). Defaults to 0.bulkforce (
Union[Expression,int,float]) – Bulk force density (in the undeformed frame!). Defaults to 0.coordinate_space – Space to use for the mesh. Defaults to None.
first_order_time_derivative – If set, a velocity is explicitly introduced, reducing the maximum time derivative order to unity (good for eigenanalysis). Defaults to False.
pressure_space (
Literal['C1','C1TB','C2','C2TB','D1','D1TB','D2','D2TB','DL','D0']) – If the constitutive law is incompressible, a pressure field is required. This controls the space of the pressure. Defaults to “DL”.with_error_estimator – If set, error estimators based on the strain are introduced. Defaults to False.
isotropic_growth_factor (
Union[Expression,int,float]) – Factor of growing with respect to the undeformed configuration. Defaults to 1.modulus_for_scaling (
Union[Expression,int,float]) – By default, nondimensionalization is made with respect to the scalesmass_density,spatialandtemporal. Here, you can set a reference Young’s modulus to nondimensionalize with respect to this instead. Defaults to None.scale_for_FSI (
bool) – If set, the scaling of the test function agrees with the scaling of the velocity test function ([X]/[P]). This is important to balance the tractions correctly
- class pyoomph.equations.solid.FSIConnection(*, velocity_offset=0)[source]
Bases:
InterfaceEquationsCan be added to the fluid side of a fluid-structure interaction interface to couple the mesh deformation and the velocity.
- Parameters:
velocity_offset (
Union[Expression,int,float]) – An offset to the velocity. You can e.g. add/substract a normal velocity to allow for fluid penetration into the solid.
- class pyoomph.equations.solid.GeneralizedHookeanSolidConstitutiveLaw(E=1, nu=0.4, use_subexpressions=True)[source]
Bases:
BaseSolidConstitutiveLawGeneralized Hookean solid constitutive law.
- Parameters:
E (
Union[Expression,int,float]) – Young’s modulusnu (
Union[Expression,int,float]) – Poisson’s ratiouse_subexpressions (bool, optional) – Use subexpressions for the tensor entries. Defaults to True.
- class pyoomph.equations.solid.IncompressibleSolidConstitutiveLaw(use_subexpressions=True)[source]
Bases:
BaseSolidConstitutiveLawBase class for incompressible solid constitutive laws. The method get_sigma must be implemented in derived classes.
- class pyoomph.equations.solid.SolidNormalTraction(P)[source]
Bases:
SolidTractionImposes a normal traction on the solid interface. This is used to apply pressure loads on the solid surface.
- Parameters:
P (
Union[Expression,int,float]) – Pressure to apply
- class pyoomph.equations.solid.SolidTraction(T)[source]
Bases:
InterfaceEquationsImposes a traction vector on the solid interface.
- Parameters:
T (
Union[Expression,int,float]) – traction to apply