Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fracture-damage #1310

Draft
wants to merge 11 commits into
base: develop
Choose a base branch
from
1 change: 1 addition & 0 deletions src/porepy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@
energy_balance,
mass_and_energy_balance,
thermoporomechanics,
fracture_damage,
)
from porepy.models.fluid_mass_balance import SinglePhaseFlow
from porepy.models.momentum_balance import MomentumBalance
Expand Down
34 changes: 34 additions & 0 deletions src/porepy/applications/test_utils/reference_dense_arrays.py
Original file line number Diff line number Diff line change
Expand Up @@ -7956,3 +7956,37 @@
"isotropic_second_order_tensor": _diagonal_entries.ravel("F"),
}
}
# test_damage_history.py
test_damage_history: dict[str, dict] = {
"test_anisotropic_damage_values": {
"friction_damage": np.array(
[
[1.09138658],
[1.09153955],
[1.08421782],
[1.08452635],
[1.08158935],
]
),
# Dilation damage is the same as friction damage due to identical
# parameters.
"dilation_damage": np.array(
[
[1.09138658],
[1.09153955],
[1.08421782],
[1.08452635],
[1.08158935],
]
),
"damage_history": np.array(
[
[0.18014312],
[0.17679804],
[0.34352722],
[0.33621384],
[0.40694277],
]
),
}
}
20 changes: 20 additions & 0 deletions src/porepy/compositional/materials.py
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,26 @@ class SolidConstants(Constants):
well_radius: number = 0.1


@dataclass(kw_only=True, eq=False)
class FractureDamageSolidConstants(SolidConstants):
"""Solid parameters for fracture damage models."""

# NOTE this makes a deep copy of the solid constants dict.
SI_units: ClassVar[dict[str, str]] = dict(**SolidConstants.SI_units)
SI_units.update(
{
"initial_dilation_damage": "-",
"initial_friction_damage": "-",
"dilation_damage_decay": "-",
"friction_damage_decay": "-",
}
)
initial_friction_damage: float = 1.0
friction_damage_decay: float = 0.0
initial_dilation_damage: float = 1.0
dilation_damage_decay: float = 0.0


@dataclass(kw_only=True, eq=False)
class NumericalConstants(Constants):
"""Data class containing numerical method parameters,
Expand Down
Loading
Loading