Skip to content

statevariable

StateVariable

F instance-attribute

fabric tensor F

cached_num instance-attribute

cached_num: int = 0

cached number of integration points

contact_min_normal_force instance-attribute

contact_min_normal_force: float

minimum normal force

cscalars instance-attribute

cscalars: Dict[str, VectorXf]

custom scalar fields for contacts, a 1D numpy array of size (size,) is expected for each contact

cvectors instance-attribute

cvectors: Dict[str, MatrixXf]

custom vector fields for contacts, a 2D numpy array of size (size, ...) is expected for each contact

disp instance-attribute

disp: MatrixXf

displacement

dispp instance-attribute

dispp: MatrixXf

plastic displacement

e instance-attribute

e: float = 0.0

void ratio

e0 instance-attribute

e0: float = 0.0

initial void ratio

ec instance-attribute

ec: float = 0.0

critical void ratio

eps instance-attribute

eps: VectorXf

strain

epsp instance-attribute

epsp: VectorXf

plastic strain

force instance-attribute

force: MatrixXf

force

matrices instance-attribute

matrices: Dict[str, MatrixXf]

custom matrix fields

phase instance-attribute

phase: int = 0

load phase index

scalars instance-attribute

scalars: Dict[str, float]

custom scalar fields

sig instance-attribute

sig: VectorXf

stress

size instance-attribute

size: int = size

Size of the integration points

vectors instance-attribute

vectors: Dict[str, VectorXf]

custom vector fields

w instance-attribute

:math:w, Plastic work

A11

A11() -> float

Fabric tensor component A11

A12

A12() -> float

Fabric tensor component A12

A13

A13() -> float

Fabric tensor component A13

A22

A22() -> float

Fabric tensor component A22

A23

A23() -> float

Fabric tensor component A23

A33

A33() -> float

Fabric tensor component A33

Aij

Aij() -> ndarray

Fabric tensor, shape (3, 3)

F11

F11() -> float

Fabric tensor component F11

F12

F12() -> float

Fabric tensor component F12

F13

F13() -> float

Fabric tensor component F13

F22

F22() -> float

Fabric tensor component F22

F23

F23() -> float

Fabric tensor component F23

F33

F33() -> float

Fabric tensor component F33

FAV

FAV(n: ndarray | None = None) -> float

Fabric anisotropy variable

FN11

FN11() -> float

Fabric tensor of contact normal force component FN11

FN12

FN12() -> float

Fabric tensor of contact normal force component FN12

FN13

FN13() -> float

Fabric tensor of contact normal force component FN13

FN22

FN22() -> float

Fabric tensor of contact normal force component FN22

FN23

FN23() -> float

Fabric tensor of contact normal force component FN23

FN33

FN33() -> float

Fabric tensor of contact normal force component FN33

FNij

FNij() -> ndarray

Fabric tensor of contact normal force, shape (3, 3)

FT11

FT11() -> float

Fabric tensor of contact shear force component FR11

FT12

FT12() -> float

Fabric tensor of contact shear force component FR12

FT13

FT13() -> float

Fabric tensor of contact shear force component FR13

FT22

FT22() -> float

Fabric tensor of contact shear force component FR22

FT23

FT23() -> float

Fabric tensor of contact shear force component FR23

FT33

FT33() -> float

Fabric tensor of contact shear force component FR33

FTij

FTij() -> ndarray

Fabric tensor of contact shear force, shape (3, 3)

Fij

Fij() -> ndarray

Fabric tensor, shape (3, 3)

Fnorm

Fnorm() -> float

Norm of the fabric tensor

I1

I1() -> float

First invariant of stress

I2

I2() -> float

Second invariant of stress

I3

I3() -> float

Third invariant of stress

Ia1

Ia1() -> float

First invariant of anisotropic stress

Ia2

Ia2() -> float

Second invariant of anisotropic stress

Ia3

Ia3() -> float

Third invariant of anisotropic stress

J2

J2() -> float

Second invariant of deviatoric stress

J3

J3() -> float

Third invariant of deviatoric stress

Ja2

Ja2() -> float

Second invariant of anisotropicdeviatoric stress

Ja3

Ja3() -> float

Third invariant of anisotropic deviatoric stress

R

R() -> float

Major stress ratio sig1/sig3

Ra

Ra() -> float

Major stress ratio siga1/siga3

__init__

__init__(size: int = 37, initialize_arrays: bool = True)

Constructor of the state variable

PARAMETER DESCRIPTION
size

Size of the integration points

TYPE: int DEFAULT: 37

initialize_arrays

Whether to initialize numpy arrays, by default True, if False, the numpy arrays are empty

TYPE: bool DEFAULT: True

addStrain

addStrain(deps: ndarray, update_void_ratio: bool = True)

Add strain increment and update void ratio

PARAMETER DESCRIPTION
deps

Strain increment, shape (6,)

TYPE: ndarray

update_void_ratio

Whether to update void ratio, by default True

TYPE: bool DEFAULT: True

an

an() -> float

Degree of fabric anisotropy for the contact normal force

ar

ar() -> float

Degree of fabric anisotropy

at

at() -> float

Degree of fabric anisotropy for the contact shear force

b

b() -> float

Lode parameter

ba

ba() -> float

Lode parameter with anisotropy

copy

copy() -> 'StateVariable'

A copy of the state variable

copyContactStateVariables

copyContactStateVariables(
    from_idx: int,
    to_idx: int,
    symmetric: bool = False,
    cscalars: List[str] = None,
    cvectors: List[str] = None,
)

Copy the contact state variables from one integration point to another

PARAMETER DESCRIPTION
from_idx

Index of the integration point to copy from

TYPE: int

to_idx

Index of the integration point to copy to

TYPE: int

symmetric

Whether to revert the symmetric contact state variables, by default False

TYPE: bool DEFAULT: False

cscalars

Custom scalar fields to be multiplied by -1, by default None

TYPE: List[str] DEFAULT: None

cvectors

Custom vector fields to be multiplied by -1, by default None

TYPE: List[str] DEFAULT: None

copyFrom

copyFrom(sv: StateVariable)

Copy state variables from another

PARAMETER DESCRIPTION
sv

State variable to copy from

TYPE: StateVariable

copyTo

copyTo(sv: StateVariable)

Copy state variables to another

eeq

eeq() -> float

Equivalent strain

elastic

elastic() -> bool

Whether the current state is elastic

elasticStiffnessMatrix

elasticStiffnessMatrix() -> ndarray

Elastic stiffness matrix, shape (3, 3)

RETURNS DESCRIPTION
ndarray

Elastic stiffness matrix

epsa

epsa() -> float

Axial strain

epsd

epsd() -> float

General shear strain

epsij

epsij() -> ndarray

Deviatoric strain tensor

epsij_normalized

epsij_normalized() -> ndarray

Normalized deviatoric strain tensor

epskk

epskk() -> ndarray

Mean strain tensor

epsm

epsm() -> ndarray

Strain in a matrix form

epspa

epspa() -> float

Axial plastic strain

epspd

epspd() -> float

General plastic shear strain

epspij

epspij() -> ndarray

Deviatoric plastic strain tensor

epspij_normalized

epspij_normalized() -> ndarray

Normalized deviatoric plastic strain tensor

epspkk

epspkk() -> ndarray

Mean plastic strain tensor

epspm

epspm() -> ndarray

Plastic strain in a matrix form

epspv

epspv() -> float

Volumetric plastic strain

epsv

epsv() -> float

Volumetric strain

eta

eta() -> float

Stress ratio

etaa

etaa() -> float

Anisotropic Stress ratio

feta

feta() -> ndarray

Shear force ratio for every integration point, shape (size,)

fetai

fetai(idx: int) -> float

Shear force ratio at the integration point with index idx

fn

fn() -> ndarray

Normal force for every integration point, shape (size,)

fnci

fnci(idx: int, cohesion: float = 0.0) -> float

Normal force with minimum cohesion at the integration point with index idx

fni

fni(idx: int) -> float

Normal force at the integration point with index idx

fr

fr() -> ndarray

Shear force for every integration point, shape (size,)

fri

fri(idx: int) -> float

Shear force at the integration point with index idx

fs

fs() -> ndarray

Shear force at the first direction for every integration point, shape (size,)

fsi

fsi(idx: int) -> float

Shear force at the first direction at the integration point with index idx

fst

fst() -> ndarray

Shear force for every integration point, shape (size, 2)

fsti

fsti(idx: int) -> ndarray

Shear force at the integration point with index idx, shape (2,)

ft

ft() -> ndarray

Shear force at the second direction for every integration point, shape (size,)

fti

fti(idx: int) -> float

Shear force at the second direction at the integration point with index idx

hash

hash(
    dfi: ndarray,
    dui: ndarray,
    idx: int,
    precision: int = 15,
    symmetric: bool = False,
    cscalars: List[str] = None,
    cvectors: List[str] = None,
) -> int

Hash the contact state variables at the integration point with index idx

PARAMETER DESCRIPTION
dfi

Contact force increment

TYPE: ndarray

dui

Contact displacement increment

TYPE: ndarray

idx

Index of the integration point

TYPE: int

precision

Precision of the hash value, by default 15

TYPE: int DEFAULT: 15

symmetric

Whether to revert the symmetric contact state variables, by default False

TYPE: bool DEFAULT: False

cscalars

Custom scalar fields to be multiplied by -1, by default None

TYPE: List[str] DEFAULT: None

cvectors

Custom vector fields to be multiplied by -1, by default None

TYPE: List[str] DEFAULT: None

RETURNS DESCRIPTION
int

Hash value

lode

lode() -> float

Lode angle (-pi/6, pi/6)

lodea

lodea() -> float

Lode angle (-pi/6, pi/6) with anisotropy

n

n() -> ndarray

Loading direction

negp

negp() -> float

Negative mean stress, usually used in Geotechnical Engineering

negpa

negpa() -> float

Negative anisotropic mean stress, usually used in Geotechnical Engineering

nsi

nsi(idx: int) -> float

Direction of the shear force in the first direction with index idx

nsti

nsti(idx: int) -> ndarray

Direction of the shear force in two dimensions with index idx, shape (2,)

nti

nti(idx: int) -> float

Direction of the shear force in the second direction with index idx

p

p() -> float

Mean stress

pa

pa() -> float

Anisotropic Mean stress

peeq

peeq() -> float

Equivalent plastic strain

plastic

plastic() -> bool

Whether the current state is plastic

q

q() -> float

Deviatoric stress

qa

qa() -> float

Anisotropic deviatoric stress

revertSymmetricContactStateVariables

revertSymmetricContactStateVariables(
    idx: int, cscalars: List[str] = None, cvectors: List[str] = None
)

Revert contact force, displacement and specified custom variables by multiplying them with -1

PARAMETER DESCRIPTION
idx

Index of the integration point

TYPE: int

cscalars

Custom scalar fields to be multiplied by -1, by default None

TYPE: List[str] DEFAULT: None

cvectors

Custom vector fields to be multiplied by -1, by default None

TYPE: List[str] DEFAULT: None

setStrain

setStrain(eps: ndarray, update_void_ratio: bool = True)

Set strain and update void ratio

PARAMETER DESCRIPTION
eps

Strain, shape (6,)

TYPE: ndarray

update_void_ratio

Whether to update void ratio, by default True

TYPE: bool DEFAULT: True

sig11

sig11() -> float

First principal stress

sig123

sig123()

Principal stresses

sig22

sig22() -> float

Second principal stress

sig33

sig33() -> float

Third principal stress

siga11

siga11() -> float

First principal stress with anisotropy

siga123

siga123()

Principal stresses with anisotropy

siga22

siga22() -> float

Second principal stress with anisotropy

siga33

siga33() -> float

Third principal stress with anisotropy

sigakk

sigakk() -> ndarray

Anisotropic mean stress tensor

sigam

sigam() -> ndarray

Anisotropic stress tensor (symmetric part of sigm @ Aij), shape (3, 3)

sigkk

sigkk() -> ndarray

Mean stress tensor

sigm

sigm() -> ndarray

Stress in a matrix form

strain

strain() -> Tensor2

Strain tensor

strainp

strainp() -> Tensor2

Plastic strain tensor

stress

stress() -> Tensor2

Stress tensor

stressa

stressa() -> Tensor2

Anisotropic stress tensor

tauaij

tauaij() -> ndarray

Anisotropic deviatoric stress tensor

tauaij_normalized

tauaij_normalized() -> ndarray

Normalized anisotropic deviatoric stress tensor

tauij

tauij() -> ndarray

Deviatoric stress tensor

tauij_normalized

tauij_normalized() -> ndarray

Normalized deviatoric stress tensor

theta

theta() -> float

Lode angle (0, pi/3)

thetaa

thetaa() -> float

Lode angle (0, pi/3) with anisotropy

un

un() -> ndarray

Normal displacement for every integration point, shape (size,)

uni

uni(idx: int) -> float

Normal displacement at the integration point with index idx

upn

upn() -> ndarray

Normal plastic displacement for every integration point, shape (size,)

upni

upni(idx: int) -> float

Normal plastic displacement at the integration point with index idx

upr

upr() -> ndarray

Shear plastic displacement for every integration point, shape (size,)

upri

upri(idx: int) -> float

Shear plastic displacement at the integration point with index idx

ups

ups() -> ndarray

Shear plastic displacement at the first direction for every integration point, shape (size,)

upsi

upsi(idx: int) -> float

Shear plastic displacement at the first direction at the integration point with index idx

upst

upst() -> ndarray

Shear plastic displacement for every integration point, shape (size, 2)

upsti

upsti(idx: int) -> ndarray

Shear plastic displacement at the integration point with index idx, shape (2,)

upt

upt() -> ndarray

Shear plastic displacement at the second direction for every integration point, shape (size,)

upti

upti(idx: int) -> float

Shear plastic displacement at the second direction at the integration point with index idx

ur

ur() -> ndarray

Shear displacement for every integration point, shape (size,)

uri

uri(idx: int) -> float

Shear displacement at the integration point with index idx

us

us() -> ndarray

Shear displacement at the first direction for every integration point, shape (size,)

usi

usi(idx: int) -> float

Shear displacement at the first direction at the integration point with index idx

ust

ust() -> ndarray

Shear displacement for every integration point, shape (size, 2)

usti

usti(idx: int) -> ndarray

Shear displacement at the integration point with index idx, shape (2,)

ut

ut() -> ndarray

Shear displacement at the second direction for every integration point, shape (size,)

uti

uti(idx: int) -> float

Shear displacement at the second direction at the integration point with index idx