femlabpy.materials#

Public material-response helpers re-exported for the API surface.

Workflow role#

The package keeps the low-level constitutive routines split across invariant and plasticity modules, but the public API exposes the functions from a single location. This page is therefore the best entry point for readers who want to see which stress-update utilities are intended for direct use from outside the element kernels.

Functions#

devstress(S)

Split a stress vector into deviatoric part and mean stress.

devstres(S)

Split a stress vector into deviatoric part and mean stress.

dyieldvm(S, G, dL, Sy)

Differentiate yieldvm() with respect to the plastic multiplier.

eqstress(S)

Return the von Mises equivalent stress for 2D or 3D stress input.

stressdp(S, G, Sy0, dE, dS)

Perform a Drucker-Prager stress correction with Newton iterations.

stressvm(S, G, Sy)

Perform the legacy plane-stress von Mises return mapping.

yieldvm(S, G, dL, Sy)

Evaluate the legacy von Mises consistency function.

Function Reference#

femlabpy.materials.devstress(S)[source]#

Split a stress vector into deviatoric part and mean stress.

Parameters:
S:

Stress vector in plane form [sxx, syy, sxy] or 3D form [sxx, syy, szz, syz, sxz, sxy].

Returns:
tuple[ndarray, float]

Deviatoric stress vector and hydrostatic mean stress.

femlabpy.materials.devstres(S)[source]#

Split a stress vector into deviatoric part and mean stress.

Parameters:
S:

Stress vector in plane form [sxx, syy, sxy] or 3D form [sxx, syy, szz, syz, sxz, sxy].

Returns:
tuple[ndarray, float]

Deviatoric stress vector and hydrostatic mean stress.

femlabpy.materials.dyieldvm(S, G, dL, Sy)[source]#

Differentiate yieldvm() with respect to the plastic multiplier.

Parameters:
S, G, dL, Sy:

Same quantities passed to yieldvm().

Returns:
float

Derivative of the consistency residual with respect to dL.

femlabpy.materials.eqstress(S) float[source]#

Return the von Mises equivalent stress for 2D or 3D stress input.

Parameters:
S:

Stress vector in plane form [sxx, syy, sxy] or 3D form [sxx, syy, szz, syz, sxz, sxy].

Returns:
float

Von Mises equivalent stress.

femlabpy.materials.stressdp(S, G, Sy0, dE, dS)[source]#

Perform a Drucker-Prager stress correction with Newton iterations.

Parameters:
S:

Trial stress vector.

G:

Material row [E, nu, Sy0, H, phi].

Sy0:

Current yield stress before the increment.

dE:

Strain increment at the integration point.

dS:

Elastic trial stress increment.

Returns:
tuple[ndarray, float]

Corrected stress vector and plastic-multiplier increment.

femlabpy.materials.stressvm(S, G, Sy)[source]#

Perform the legacy plane-stress von Mises return mapping.

Parameters:
S:

Trial stress vector.

G:

Material row [E, nu, Sy0, H, ...].

Sy:

Current yield stress including prior hardening.

Returns:
tuple[ndarray, float]

Updated stress vector and plastic-multiplier increment.

femlabpy.materials.yieldvm(S, G, dL, Sy)[source]#

Evaluate the legacy von Mises consistency function.

Parameters:
S:

Current stress vector in plane form.

G:

Material row [E, nu, Sy0, H, ...].

dL:

Plastic-multiplier increment.

Sy:

Current yield stress including prior hardening.

Returns:
float

Residual of the scalar return-mapping equation.