Index
ChangHicherAbstractModel
Bases: 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.
contactIntegrate
contactIntegrate(
idx: int,
dforce: ndarray,
ddisp: ndarray,
sv0: StateVariable,
sv: StateVariable,
) -> ndarray
maxYieldFunction
maxYieldFunction(sv0: StateVariable, sv: StateVariable)
Determine the maximum yield function value
stiffness1
stiffness1(
sv0: StateVariable,
sv: StateVariable,
kn: ndarray = None,
ks: ndarray = None,
kt: ndarray = None,
) -> ndarray
stress2force
stress2force(idx: int, sv0: StateVariable, sv: StateVariable)
Transformation matrix converting from stress increment to force increment
stressStrainIntegrate
stressStrainIntegrate(
K: ndarray,
dsig: ndarray,
deps: ndarray,
sv0: StateVariable,
sv: StateVariable,
) -> None
stressStrainIntegrate1
stressStrainIntegrate1(
K: ndarray,
dsig: ndarray,
deps: ndarray,
sv0: StateVariable,
sv: StateVariable,
) -> None
updateHardeningVariables
updateHardeningVariables(
ddlambda: float, ddepsp: ndarray, sv0: StateVariable, sv: StateVariable
)
yieldFunctionCorrection
yieldFunctionCorrection(
K: ndarray, deps: ndarray, sv0: StateVariable, sv: StateVariable
)