Skip to content

integration

Integration

_Aij instance-attribute

_Aij: MatrixXf = zeros((0, 0), dtype=numpy_float)

fabric tensor

_beta instance-attribute

_beta: VectorXf = zeros(0, dtype=numpy_float)

azimuthal angles of the integration points in the x-y plane

_gamma instance-attribute

_gamma: VectorXf = zeros(0, dtype=numpy_float)

azimuthal angles of the integration points z-axis

_l instance-attribute

_l: MatrixXf = zeros((0, 3), dtype=numpy_float)

contact vectors of the integration points

_p instance-attribute

_p: List[MatrixXf] = empty_list(MatrixXf)

transition matrices

_s instance-attribute

_s: MatrixXf = zeros((0, 3), dtype=numpy_float)

first shear direction

_t instance-attribute

_t: MatrixXf = zeros((0, 3), dtype=numpy_float)

second shear direction

_weight instance-attribute

_weight: VectorXf = zeros(0, dtype=numpy_float)

weight

changed instance-attribute

fabric instance-attribute

fabric: FabricTensor = FabricTensor('chang1990-ext', 'zhao2020', None)

fabric tensor

gauss_weight instance-attribute

gauss_weight: VectorXf = zeros(0, dtype=numpy_float)

weights of the integration points

n instance-attribute

n: MatrixXf = zeros((0, 3), dtype=numpy_float)

azimuthal angles of the integration points

npv instance-attribute

number of contacts per unit volume

radius instance-attribute

radius: numba_float = numba_float(radius)

particle radius

Aij

Aij() -> ndarray

The fabric tensor Aij, an array of shape (3, 3).

\[ A_{ij} = \left[(2r)^2 \frac{N}{V} \left(\frac{2}{15}F_{ij} + \frac{1}{3} I\right) \right]^{-1} \]
RETURNS DESCRIPTION
ndarray

The fabric tensor.

Aij_

Aij_() -> ndarray

Calculate the fabric tensor Aij from the definition, an array of shape (3, 3).

\[ A_{ij} = \frac{1}{V} \sum_{c=1}^{N}{l_i^c l_j^c} \]

__init__

__init__(npv: float = 1000000000.0, radius=0.00065)

Constructor for the Gauss integration class.

PARAMETER DESCRIPTION
npv

number of contacts per unit volume

TYPE: float DEFAULT: 1000000000.0

radius

particle radius

TYPE: float DEFAULT: 0.00065

beta

beta() -> ndarray

The azimuthal angles of the integration points in the y-z plane, an array of shape (n,).

RETURNS DESCRIPTION
ndarray

The azimuthal angles of the integration points in the y-z plane.

bi

bi(idx: int) -> ndarray

gamma

gamma() -> ndarray

The azimuthal angles of the integration points x-axis, an array of shape (n,).

RETURNS DESCRIPTION
ndarray

The azimuthal angles of the integration points x-axis.

gi

gi(idx: int) -> ndarray

indexOf

indexOf(
    beta: float = -1.0, gamma: float = -1.0, tol: float = 1e-06
) -> Tuple[ndarray, ndarray]

Return the indices of the integration points with the given beta and gamma angles and the corresponding angles. Specify one (and only one) of beta or gamma.

PARAMETER DESCRIPTION
beta

The angle between the projection of the azimuth on the YZ plane and the Y axis

TYPE: float DEFAULT: -1.0

gamma

The angle between the azimuth and the X axis

TYPE: float DEFAULT: -1.0

tol

The tolerance for the comparison of the angles, by default 1e-6

TYPE: float DEFAULT: 1e-06

RETURNS DESCRIPTION
ndarray

The indices of the integration points

ndarray

The corresponding angles, depending on the given angles, gamma when beta is given and vice versa

initialize

initialize(sv: StateVariable) -> None

Initialize the integration points.

l

l() -> ndarray

The contact vectors of the integration points, an array of shape (n, 3).

RETURNS DESCRIPTION
ndarray

The integration points in the x-y plane.

li

li(idx: int) -> ndarray

p

p(idx: int) -> ndarray

The transformation matrix, an array of shape (3, 3).

RETURNS DESCRIPTION
ndarray

The transformation matrix.

reset

reset() -> None

Reset temporary variables.

rho

rho() -> float

Normalized packing density.

rotate

rotate(F: ndarray, idx: int) -> ndarray

Rotate the fabric tensor.

rotates

rotates(F: ndarray) -> List[ndarray]

Rotate the fabric tensors.

s

s() -> ndarray

The first shear direction, an array of shape (n, 3).

setAnisotropicParameters

setAnisotropicParameters(
    type: AvailableFabricTypes = "chang1990-ext",
    evolution: AvailableFabricEvolutionTypes = "zhao2020",
    coefs: Dict[str, float] = None,
)

Set the anisotropic parameters.

PARAMETER DESCRIPTION
type

The type of the anisotropic parameter.

TYPE: str DEFAULT: 'chang1990-ext'

evolution

The evolution type of the anisotropic parameter.

TYPE: str DEFAULT: 'zhao2020'

coefs

The coefficients of the anisotropic parameter.

TYPE: Dict[str, float] DEFAULT: None

setGauss37

setGauss37(full: bool = False)

Set the Gauss37 integration points.

PARAMETER DESCRIPTION
full

Full 37*2 integration points.

TYPE: bool DEFAULT: False

setGauss61

setGauss61(full: bool = False)

Set the Gauss61 integration points.

PARAMETER DESCRIPTION
full

Full 61*2 integration points.

TYPE: bool DEFAULT: False

setNPVFromNormalizedPackingDensity

setNPVFromNormalizedPackingDensity(rho: float)

Set the number of contacts per unit volume from the normalized packing density with the following equation:

\[ \rho=\frac{Nl^3}{V}=\frac{8Nr^3}{V} \Longrightarrow \frac{N}{V}=\frac{\rho}{8r^3} \]
PARAMETER DESCRIPTION
rho

normalized packing density

TYPE: float

setNPVFromVoidRatio

setNPVFromVoidRatio(e: float)

Set the number of contacts per unit volume from the void ratio with the following equation:

\[ \frac{N}{V}=\frac{3(13.28-8e)}{4\pi r^3(1+e)} \]
PARAMETER DESCRIPTION
e

void ratio

TYPE: float

setParameters

setParameters(npv: float, radius: float) -> None

Set the parameters.

PARAMETER DESCRIPTION
npv

number of contacts per unit volume

TYPE: float

radius

particle radius

TYPE: float

si

si(idx: int) -> ndarray

size

size() -> int

The number of integration points.

RETURNS DESCRIPTION
int

The number of integration points.

t

t() -> ndarray

The second shear direction, an array of shape (n, 3).

ti

ti(idx: int) -> ndarray

weight

weight() -> ndarray

The weights of the integration points, an array of shape (n,).

RETURNS DESCRIPTION
ndarray

The weights of the integration points.

wi

wi(idx: int) -> ndarray

IntegrationChanged

beta instance-attribute

beta: bool

branch instance-attribute

branch: bool

fabricTensor instance-attribute

fabricTensor: bool

gamma instance-attribute

gamma: bool

s instance-attribute

s: bool

t instance-attribute

t: bool

transformation instance-attribute

transformation: bool

weight instance-attribute

weight: bool

__init__

__init__()

reset

reset()