changhicher
ChangHicherAbstractModel
Bases: MixedLoadControl
, LoveWeberAveraging
, BestFitAveraging
, StaticHypothesisLocalization
, KinematicHypothesisLocalization
Abstract class for the Chang-Hicher model, define the createContactLaw
method and contact
property
annotation.
The Stress-strain relation of the Chang-Hicher model is given by:
where \(K_{jl}^c\) is the elastic stiffness matrix of the contact law, \(l_i^c\) is the unit vector pointing from the center of the contact area to the contact point, \(A\) is the fabric tensor, and \(V\) is the volume of the representative volume element.
The macro-micro integration algorithm is given by:
Calculated the contact force increment from the stress increment based on the static hypothesis:
Calculate the contact displacement increment from the contact force increment based on the elastic trial:
Update the contact force increment based on the contact law:
Update the stress increment based on the Love-Weber formula:
Update contact force from the stress increment based on the static hypothesis:
Calculate the unbalanced force:
Set the force increment to the unbalanced force and repeat the steps from the second step until the unbalanced force is small enough.
adaptiveIntegrationSubstepping
adaptiveIntegrationSubstepping(
dforce: ndarray, ddisp: ndarray, sv0: StateVariable, sv: StateVariable
) -> float
Adaptive substepping for macro-micro integration.
PARAMETER | DESCRIPTION |
---|---|
dforce
|
The force increment.
TYPE:
|
ddisp
|
The displacement increment.
TYPE:
|
sv0
|
The initial state variable.
TYPE:
|
sv
|
The current state variable.
TYPE:
|
RETURNS | DESCRIPTION |
---|---|
float
|
A ratio to reduce the force/displacement increment. |
contactIntegrate
contactIntegrate(
idx: int,
dforce: ndarray,
ddisp: ndarray,
sv0: StateVariable,
sv: StateVariable,
)
macroMicroIntegrate
macroMicroIntegrate(
K: ndarray,
dsig: ndarray,
deps: ndarray,
sv0: StateVariable,
sv: StateVariable,
) -> None
stiffness
stiffness(
sv0: StateVariable,
sv: StateVariable,
kn: ndarray = None,
ks: ndarray = None,
original: bool = False,
) -> ndarray