Skip to content

multiscale

KinematicHypothesis

Bases: MultiScale

E property

E: float

caches class-attribute

caches: Dict[str, LRUCache] = {
    "stiffness": LRUCache(maxsize=1024),
    "compliance": LRUCache(maxsize=1024),
}

compliance property

compliance: ndarray

model class-attribute

model: Model = Model('CH-OSIMSAND')

nu property

nu: float

stiffness property

stiffness: ndarray

sv class-attribute

sv: StateVariable = StateVariable()

modifiedShearStiffness

modifiedShearStiffness(
    kn: float | ndarray,
    kr: float | ndarray,
    fn: float | ndarray,
    F: ndarray | None = None,
) -> float | ndarray

setPoissonRatio

setPoissonRatio(nu: float)

MultiScale

Bases: ElasticityBase, Anisotropy, ContactNumber, HertzMindlin

Multi-scale material model.

anisotropic property

anisotropic: bool

bounds class-attribute

bounds: Dict[str, List[float]] = {
    "npv": [1, 1e20],
    "radius": [1e-06, 0.001],
    "kn": [1, 10000.0],
    "krr": [0, 10],
    "Gg": [1, 1e20],
    "nug": [0, 1],
    "n": [0, 1],
    "nr": [0, 1],
    "F1": [-10, 10],
    "F2": [-10, 10],
    "F12": [-10, 10],
    "F13": [-10, 10],
    "F23": [-10, 10],
    "cn": [-10, 10],
    "cr": [-10, 10],
    "cc": [-10, 10],
    "ncc": [0, 10],
}

force_numerical class-attribute instance-attribute

force_numerical: bool = False

Calculate the stiffness numerically by force.

isotropic property

isotropic: bool

keys class-attribute

keys: List[str] = [
    "npv",
    "radius",
    "kn",
    "krr",
    "F1",
    "F2",
    "F12",
    "F13",
    "F23",
]

rho property

rho: float

Normalized packing density

sig1 class-attribute instance-attribute

sig1: float | None = None

Stress in the first direction.

sig2 class-attribute instance-attribute

sig2: float | None = None

Stress in the second direction.

sig3 class-attribute instance-attribute

sig3: float | None = None

Stress in the third direction.

stds class-attribute

stds: Dict[str, float] = {
    "npv": 1000000000.0,
    "radius": 0.0001,
    "kn": 10.0,
    "krr": 0.1,
    "Gg": 100000000.0,
    "nug": 0.01,
    "n": 0.1,
    "nr": 0.1,
    "F1": 0.1,
    "F2": 0.1,
    "F12": 0.1,
    "F13": 0.1,
    "F23": 0.1,
    "cn": 0.01,
    "cr": 0.01,
    "cc": 0.01,
    "ncc": 0.1,
}

x0 class-attribute

x0: Dict[str, float] = {
    "npv": 1000000000.0,
    "radius": 0.001,
    "kn": 80.0,
    "krr": 0.4,
    "Gg": 2000000000.0,
    "nug": 0.2,
    "n": 1 / 3,
    "nr": 1 / 3,
    "F1": 0.0,
    "F2": 0.0,
    "F12": 0.0,
    "F13": 0.0,
    "F23": 0.0,
    "cn": 0.0,
    "cr": 0.0,
    "cc": 1.0,
    "ncc": 1.0,
}

model_post_init

model_post_init(__context: Any) -> None

Set default values when force_numerical is set to True.

modifiedNormalStiffness

modifiedNormalStiffness(
    kn: float | ndarray, fn: float | ndarray, F: ndarray | None = None
) -> float | ndarray

setPoissonRatio abstractmethod

setPoissonRatio(nu: float)

Set the Poisson's ratio.

StaticHypothesis

Bases: MultiScale

E property

E: float

caches class-attribute

caches: Dict[str, LRUCache] = {
    "stiffness": LRUCache(maxsize=1024),
    "compliance": LRUCache(maxsize=1024),
}

compliance property

compliance: ndarray

integration class-attribute

integration: Integration = integration

model class-attribute

model: Model = Model('CH-OSIMSAND')

nu property

nu: float

stiffness property

stiffness: ndarray

sv class-attribute

sv: StateVariable = StateVariable()

modifiedShearStiffness

modifiedShearStiffness(
    kn: float | ndarray,
    kr: float | ndarray,
    fn: float | ndarray,
    F: ndarray | None = None,
) -> float | ndarray

setPoissonRatio

setPoissonRatio(nu: float)

transformationMatrix classmethod

transformationMatrix(F: ndarray) -> ndarray

Return the transformation matrix transforming original stress to modified stress