Skip to content

Index

Contact laws for micromechanical models.

__all__ module-attribute

__all__ = [
    "contact_registry",
    "CoulombContactLaw",
    "ElasticContactLaw",
    "ExponentialContactLaw",
    "HyperbolicContactLaw",
    "HypoplasticContactLaw",
    "MCCContactLaw",
    "OSIMSANDContactLaw",
    "SANISANDContactLaw",
    "SIMSANDContactLaw",
]

contact_registry module-attribute

contact_registry: Registry[str, Type[ContactLawBase]] = Registry()

CoulombContactLaw

Bases: NonlinearElasticContactLaw, ConstantStiffness

Coulomb contact law.

setup

setup()

stiffness

stiffness(
    idx: int, ddisp: ndarray, sv0: StateVariable, sv: StateVariable
) -> ndarray

ElasticContactLaw

Bases: NonlinearElasticContactLaw, ConstantStiffness

setup

setup()

stiffness

stiffness(
    idx: int, ddisp: ndarray, sv0: StateVariable, sv: StateVariable
) -> ndarray

ExponentialContactLaw

Bases: NonlinearElasticContactLaw, ChangStiffness, ExponentialBreakageCSL

Exponential contact law.

initialize

initialize(sv: StateVariable)

setup

setup()

stiffness

stiffness(
    idx: int, ddisp: ndarray, sv0: StateVariable, sv: StateVariable
) -> ndarray

HyperbolicContactLaw

Bases: NonlinearElasticContactLaw, ChangStiffness, ExponentialBreakageCSL

Hyperbolic contact law.

initialize

initialize(sv: StateVariable)

setup

setup()

stiffness

stiffness(
    idx: int, ddisp: ndarray, sv0: StateVariable, sv: StateVariable
) -> ndarray

HypoplasticContactLaw

Bases: NonlinearElasticContactLaw, ExponentialBreakageCSL

Hypoplastic contact law.

rcs instance-attribute

rcs: VectorXf

Relative coefficients, to speed up the calculation

coefficients

coefficients(kt: float, idx: int, sv0: StateVariable, sv: StateVariable)

Relative coefficients. multiplied by fn.

elasticStiffness

elasticStiffness(
    idx: int, fn: float, sv0: StateVariable, sv: StateVariable
) -> ndarray

initialize

initialize(sv: StateVariable)

preIntegration

preIntegration(
    idx: int, ddisp: ndarray, sv0: StateVariable, sv: StateVariable
) -> None

setup

setup()

stiffness

stiffness(
    idx: int, ddisp: ndarray, sv0: StateVariable, sv: StateVariable
) -> ndarray

MCCContactLaw

Bases: ElastoplasticContactLaw, ChangStiffness, MCCCSL

Extended Modified Cam-Clay (MCC) contact law.

checkConvergence

checkConvergence(idx: int, sv0: StateVariable, sv: StateVariable)

Check convergence of the iteration

PARAMETER DESCRIPTION
idx

Index of the integration point

TYPE: int

sv

State variables

TYPE: StateVariable

dfdforce

dfdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

dgdforce

dgdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

hardening

hardening(
    idx: int, dgdsig: ndarray, sv0: StateVariable, sv: StateVariable
) -> float

initialize

initialize(sv: StateVariable)

setup

setup()

updateHardeningVariables

updateHardeningVariables(
    idx: int,
    dlambda: float,
    ddispp: ndarray,
    sv0: StateVariable,
    sv: StateVariable,
)

yieldSurface

yieldSurface(
    idx: int, fn: float, fr: float, sv0: StateVariable, sv: StateVariable
) -> float

OSIMSANDContactLaw

Bases: ElastoplasticContactLaw, ChangStiffness, LogarithmicCSL

Original SimSand contact law.

dfdforce

dfdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

dgdforce

dgdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

hardening

hardening(
    idx: int, dgdsig: ndarray, sv0: StateVariable, sv: StateVariable
) -> float

initialize

initialize(sv: StateVariable)

setup

setup()

updateHardeningVariables

updateHardeningVariables(
    idx: int,
    dlambda: float,
    ddispp: ndarray,
    sv0: StateVariable,
    sv: StateVariable,
)

yieldSurface

yieldSurface(
    idx: int, fn: float, fr: float, sv0: StateVariable, sv: StateVariable
) -> float

SANISANDContactLaw

Bases: ElastoplasticContactLaw, ChangStiffness, ExponentialBreakageCSL

SANISAND contact law.

dfdforce

dfdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

dgdforce

dgdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

hardening

hardening(
    idx: int, dgdsig: ndarray, sv0: StateVariable, sv: StateVariable
) -> float

initialize

initialize(sv: StateVariable)

maintainYieldSurface

maintainYieldSurface(
    idx: int,
    ddisp: ndarray,
    dforce: ndarray,
    sv0: StateVariable,
    sv: StateVariable,
)

setup

setup()

updateHardeningVariables

updateHardeningVariables(
    idx: int,
    dlambda: float,
    ddispp: ndarray,
    sv0: StateVariable,
    sv: StateVariable,
)

yieldSurface

yieldSurface(
    idx: int, fn: float, fr: float, sv0: StateVariable, sv: StateVariable
) -> float

SIMSANDContactLaw

Bases: ElastoplasticContactLaw, ChangStiffness, ExponentialBreakageCSL

SIMSAND contact law.

dfdforce

dfdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

dgdforce

dgdforce(idx: int, sv0: StateVariable, sv: StateVariable) -> ndarray

hardening

hardening(
    idx: int, dgdsig: ndarray, sv0: StateVariable, sv: StateVariable
) -> float

initialize

initialize(sv: StateVariable)

setup

setup()

updateHardeningVariables

updateHardeningVariables(
    idx: int,
    dlambda: float,
    ddispp: ndarray,
    sv0: StateVariable,
    sv: StateVariable,
)

yieldSurface

yieldSurface(
    idx: int, fn: float, fr: float, sv0: StateVariable, sv: StateVariable
) -> float