weac.core.field_quantities module

This module defines the FieldQuantities class, which is responsible for calculating and providing access to various physical quantities within the slab.

class weac.core.field_quantities.FieldQuantities(eigensystem)[source]

Bases: object

Convenience accessors for a 6xN solution matrix Z = [u, u’, w, w’, ψ, ψ’]ᵀ. All functions are vectorized along the second axis (x-coordinate), so they return an ndarray of length N.

Parameters:

eigensystem (Eigensystem)

__init__(eigensystem)[source]
Parameters:

eigensystem (Eigensystem)

u(Z, h0=0, unit='mm')[source]

Horizontal displacement u = u₀ + h₀ ψ at depth h₀.

Parameters:
  • Z (ndarray)

  • h0 (float)

  • unit (Literal['m', 'cm', 'mm', 'um'])

Return type:

float | ndarray

du_dx(Z, h0)[source]

Derivative u’ = u₀’ + h₀ ψ’.

Parameters:
  • Z (ndarray)

  • h0 (float)

Return type:

float | ndarray

w(Z, unit='mm')[source]

Center-line deflection w.

Parameters:
  • Z (ndarray)

  • unit (Literal['m', 'cm', 'mm', 'um'])

Return type:

float | ndarray

dw_dx(Z)[source]

First derivative w’.

Parameters:

Z (ndarray)

Return type:

float | ndarray

psi(Z, unit='rad')[source]

Rotation ψ of the mid-plane.

Parameters:
  • Z (ndarray)

  • unit (Literal['deg', 'rad'])

Return type:

float | ndarray

dpsi_dx(Z)[source]

First derivative ψ′.

Parameters:

Z (ndarray)

Return type:

float | ndarray

N(Z)[source]

Axial normal force N = A11 u’ + B11 psi’ in the slab [N]

Parameters:

Z (ndarray)

Return type:

float | ndarray

M(Z)[source]

Bending moment M = B11 u’ + D11 psi’ in the slab [Nmm]

Parameters:

Z (ndarray)

Return type:

float | ndarray

V(Z)[source]

Vertical shear force V = kA55(w’ + psi) [N]

Parameters:

Z (ndarray)

Return type:

float | ndarray

sig(Z, unit='MPa')[source]

Weak-layer normal stress

Parameters:
  • Z (ndarray)

  • unit (Literal['Pa', 'kPa', 'MPa', 'GPa'])

Return type:

float | ndarray

tau(Z, unit='MPa')[source]

Weak-layer shear stress

Parameters:
  • Z (ndarray)

  • unit (Literal['Pa', 'kPa', 'MPa', 'GPa'])

Return type:

float | ndarray

eps(Z)[source]

Weak-layer normal strain

Parameters:

Z (ndarray)

Return type:

float | ndarray

gamma(Z)[source]

Weak-layer shear strain.

Parameters:

Z (ndarray)

Return type:

float | ndarray

Gi(Ztip, unit='kJ/m^2')[source]

Mode I differential energy release rate at crack tip.

Parameters:
  • Ztip (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x) psi’(x)]^T at the crack tip.

  • unit ({'N/mm', 'kJ/m^2', 'J/m^2'}, optional) – Desired output unit. Default is kJ/m^2.

Return type:

float | ndarray

Gii(Ztip, unit='kJ/m^2')[source]

Mode II differential energy release rate at crack tip.

Parameters:
  • Ztip (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x) psi’(x)]^T at the crack tip.

  • unit ({'N/mm', 'kJ/m^2', 'J/m^2'}, optional) – Desired output unit. Default is kJ/m^2 = N/mm.

Return type:

float | ndarray

dz_dx(z, phi, qs=0)[source]

First derivative z’(x) = K*z(x) + q of the solution vector.

z’(x) = [u’(x) u’’(x) w’(x) w’’(x) psi’(x), psi’’(x)]^T

Parameters:
  • z (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x), psi’(x)]^T

  • phi (float) – Inclination (degrees). Counterclockwise positive.

  • qs (float)

Returns:

First derivative z’(x) for the solution vector (6x1).

Return type:

ndarray

dz_dxdx(z, phi, qs)[source]

Get second derivative z’’(x) = K*z’(x) of the solution vector.

z’’(x) = [u’’(x) u’’’(x) w’’(x) w’’’(x) psi’’(x), psi’’’(x)]^T

Parameters:
  • z (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x), psi’(x)]^T

  • phi (float) – Inclination (degrees). Counterclockwise positive.

  • qs (float)

Returns:

Second derivative z’’(x) = (K*z(x) + q)’ = K*z’(x) = K*(K*z(x) + q) of the solution vector (6x1).

Return type:

ndarray

du0_dxdx(z, phi, qs)[source]

Get second derivative of the horiz. centerline displacement u0’’(x).

Parameters:
  • z (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x) psi’(x)]^T.

  • phi (float) – Inclination (degrees). Counterclockwise positive.

  • qs (float)

Returns:

Second derivative of the horizontal centerline displacement u0’’(x) (1/mm).

Return type:

ndarray, float

dpsi_dxdx(z, phi, qs)[source]

Get second derivative of the cross-section rotation psi’’(x).

Parameters:
  • z (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x) psi’(x)]^T.

  • phi (float) – Inclination (degrees). Counterclockwise positive.

  • qs (float)

Returns:

Second derivative of the cross-section rotation psi’’(x) (1/mm^2).

Return type:

ndarray, float

du0_dxdxdx(z, phi, qs)[source]

Get third derivative of the horiz. centerline displacement u0’’’(x).

Parameters:
  • z (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x) psi’(x)]^T.

  • phi (float) – Inclination (degrees). Counterclockwise positive.

  • qs (float)

Returns:

Third derivative of the horizontal centerline displacement u0’’’(x) (1/mm^2).

Return type:

ndarray, float

dpsi_dxdxdx(z, phi, qs)[source]

Get third derivative of the cross-section rotation psi’’’(x).

Parameters:
  • z (ndarray) – Solution vector [u(x) u’(x) w(x) w’(x) psi(x) psi’(x)]^T.

  • phi (float) – Inclination (degrees). Counterclockwise positive.

  • qs (float)

Returns:

Third derivative of the cross-section rotation psi’’’(x) (1/mm^3).

Return type:

ndarray, float