Material Models#

Each RatelMaterial is responsible for adding volumetric terms to the residual, Jacobian, and diagnostic quantity evaluation operators as well as any surface terms that require volumetric or material model values. Additionally, each RatelMaterial is responsible for building and modifying corresponding preconditioner components, as needed.

enum RatelModelType#

Specify material region model.

Values:

enumerator RATEL_MODEL_FEM#

FEM material model.

typedef struct RatelModelParameterData_private *RatelModelParameterData#

Material model parameter information for printing.

typedef struct RatelModelData_private *RatelModelData#

Material model data.

typedef struct RatelMaterial_private *RatelMaterial#

Material region.

typedef LinearElasticityParams NeoHookeanElasticityParams#

neo-Hookean model data

typedef int (*RatelComputef1)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, CeedScalar[3][3], CeedScalar[3][3])#
typedef int (*RatelComputef1_fwd)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, CeedScalar[3][3], CeedScalar[3][3])#
typedef int (*RatelComputef1_Mixed)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, CeedScalar[3][3], CeedScalar[3][3], CeedScalar*)#
typedef int (*RatelComputedf1_fwd_Mixed)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, CeedScalar[3][3], CeedScalar[3][3], CeedScalar*, CeedScalar*)#
typedef int (*RatelComputeg0_Mixed)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, const CeedScalar, CeedScalar*)#
typedef int (*RatelComputedg0_fwd_Mixed)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, const CeedScalar, const CeedScalar, CeedScalar*)#
struct RatelModelParameterData_private mooney_rivlin_param_data_private#

Mooney-Rivlin model parameters for CeedQFunctionContext and viewing.

struct RatelModelParameterData_private neo_hookean_param_data_private#

Neo-Hookean model parameters for CeedQFunctionContext and viewing.

struct RatelModelParameterData_private ogden_param_data_private#

Ogden model parameters for CeedQFunctionContext and viewing.

struct RatelModelParameterData_private plasticity_linear_param_data_private#

Linear plasticity model parameters for CeedQFunctionContext and viewing.

int SetupSurfaceForceGeometry(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute geometric factors for integration, gradient transformations, and coordinate transformations on element faces.

Reference (parent) 2D coordinates are given by X and physical (current) 3D coordinates are given by x. The change of coordinate matrix is given bydxdX_{i,j} = dx_i/dX_j (indicial notation) [3 * 2].

(N_1, N_2, N_3) is given by the cross product of the columns of dxdX_{i,j}.

detNb is the magnitude of (N_1, N_2, N_3).

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - Jacobian of cell coordinates 1 - Jacobian of face coordinates 2 - quadrature weights

  • out[out] Output array 0 - qdata, w detNb, dXdx, and N

Returns:

An error code: 0 - success, otherwise - failure

int SetupSurfaceGeometry(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute geometric factors for integration, gradient transformations, and coordinate transformations on element faces.

Reference (parent) 2D coordinates are given by X and physical (current) 3D coordinates are given by x. The change of coordinate matrix is given bydxdX_{i,j} = dx_i/dX_j (indicial notation) [3 * 2].

(N_1, N_2, N_3) is given by the cross product of the columns of dxdX_{i,j}.

detNb is the magnitude of (N_1, N_2, N_3).

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - Jacobian of face coordinates 1 - quadrature weights

  • out[out] Output array 0 - qdata, w detNb and N

Returns:

An error code: 0 - success, otherwise - failure

int SetupVolumeGeometry(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute geometric factors for integration, gradient transformations, and coordinate transformations in elements.

Reference (parent) coordinates are given by X and physical (current) coordinates are given by x. Change of coordinate matrix is given by dxdX_{i,j} = x_{i,j} (indicial notation). Inverse of change of coordinate matrix is given by dXdx_{i,j} = (detJ^-1) * X_{i,j}.

We require the transpose of the inverse of the Jacobian to properly compute integrals of the form int( gradv u ).

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - Jacobian of cell coordinates 1 - quadrature weights

  • out[out] Output array 0 - qdata, w detJ and dXdx

Returns:

An error code: 0 - success, otherwise - failure

int SetupVolumeGeometrySymmetric(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute symmetric geometric factors for integration, gradient transformations, and coordinate transformations in elements.

Reference (parent) coordinates are given by X and physical (current) coordinates are given by x. Change of coordinate matrix is given by dxdX_{i,j} = x_{i,j} (indicial notation). Inverse of change of coordinate matrix is given by dXdx_{i,j} = (detJ^-1) * X_{i,j}.

We require the transpose of the inverse of the Jacobian to properly compute integrals of the form int( gradv u ).

Inverse of Jacobian is given by dXdx_i,j = Aij / detJ. We store w A^T A / detJ, which is symmetric, so we only store 6 distinct entries.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - Jacobian of cell coordinates 1 - quadrature weights

  • out[out] Output array 0 - qdata, w detJ and dXdx_sym

Returns:

An error code: 0 - success, otherwise - failure

int Residual_CEED_BP1(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the residual for the CEED scalar BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - interpolated values of u

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Jacobian_CEED_BP1(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the Jacobian for the CEED scalar BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - interpolated values of du

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_CEED_BP1(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the diagnostic quantities for the CEED scalar BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - u

  • out[out] Output array 0 - diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int Residual_CEED_BP2(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the residual for the CEED vector BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - interpolated values of u

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Jacobian_CEED_BP2(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the Jacobian for the CEED vector BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - interpolated values of du

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_CEED_BP2(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the diagnostic values for the CEED vector BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - u

  • out[out] Output array 0 - diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int Residual_CEED_BP3(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the residual for the CEED scalar BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Jacobian_CEED_BP3(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the Jacobian for the CEED scalar BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of du

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_CEED_BP3(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the diagnostic quantities for the CEED scalar BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - u

  • out[out] Output array 0 - diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int Residual_CEED_BP4(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the residual for the CEED vector BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Jacobian_CEED_BP4(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the Jacobian for the CEED vector BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of du

  • out[out] Output array 0 - action of the QFunction

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_CEED_BP4(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute the diagnostic values for the CEED vector BP problem.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata 1 - u

  • out[out] Output array 0 - diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int DualDiagnostic(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute dual space diagnostic values.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - volumetric qdata

  • out[out] Output array 0 - nodal volume

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual(void *ctx, CeedInt Q, RatelComputef1 compute_f1, bool has_state_values, bool has_stored_values, CeedInt num_active_field_eval_modes, const CeedScalar *const *in, CeedScalar *const *out)#

Compute elasticity residual evaluation.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • compute_f1[in] Function to compute action of f1

  • has_state_values[in] Boolean flag indicating model state values in residual evaluation

  • has_stored_values[in] Boolean flag indicating model stores values in residual evaluation

  • num_active_field_eval_modes[in] Number of active field evaluation modes

  • in[in] Input arrays 0 - volumetric qdata

  • out[out] Output array output_data_offset - action of QFunction

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian(void *ctx, CeedInt Q, RatelComputef1_fwd compute_df1, CeedInt num_active_field_eval_modes, bool has_stored_values, bool has_state_values, const CeedScalar *const *in, CeedScalar *const *out)#

Compute elasticity Jacobian evaluation.

Parameters:
  • ctx[in] QFunction context, holding common parameters and model parameters

  • Q[in] Number of quadrature points

  • compute_df1[in] Function to compute action of df1

  • has_state_values[in] Boolean flag indicating model state values in residual evaluation

  • has_stored_values[in] Boolean flag indicating model stores values in residual evaluation

  • num_active_field_eval_modes[in] Number of active field evaluation modes

  • in[in] Input arrays 0 - volumetric qdata input_data_offset - incremental change in u

  • out[out] Output array 0 - action of QFunction 1 - action of QFunction dynamic solver term

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_IsochoricMooneyRivlin(CeedScalar kappa, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for isochoric mooney-rivlin hyperelasticity.

Parameters:
  • kappa[in] Bulk modulus

  • mu_1[in] First Mooney-Rivlin parameter

  • two_mu_2[in] Two times the second Mooney-Rivlin parameter

  • Jm1[in] Determinant of deformation gradient - 1

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_IsochoricMooneyRivlin(CeedScalar kappa, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for isochoric mooney-rivlin hyperelasticity.

Parameters:
  • kappa[in] Bulk modulus

  • mu_1[in] First Mooney-Rivlin parameter

  • two_mu_2[in] Two times the second Mooney-Rivlin parameter

  • Jm1[in] Determinant of deformation gradient - 1

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_IsochoricMooneyRivlin_fwd(CeedScalar kappa, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar dS_sym[6])#

Compute derivative of second Kirchoff stress for isochoric mooney-rivlin hyperelasticity.

Parameters:
  • kappa[in] Bulk modulus

  • mu_1[in] First Mooney-Rivlin parameter

  • two_mu_2[in] Two times the second Mooney-Rivlin parameter

  • Jm1[in] Determinant of deformation gradient - 1

  • F[in] Deformation gradient

  • grad_du[in] Gradient of incremental change in u

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • dS_sym[out] Derivative of second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int Energy_IsochoricMooneyRivlin(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for isochoric mooney-rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_IsochoricMooneyRivlin(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for isochoric mooney-rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates 3 - p

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_IsochoricMooneyRivlin(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for isochoric mooney-rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int f1_IsochoricMooneyRivlinInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute P for isochoric mooney-rivlin hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored gradient of u with respect to physical coordinates

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

Returns:

An error code: 0 - success, otherwise - failure

int df1_IsochoricMooneyRivlinInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of P for isochoric mooney-rivlin hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u with respect to physical coordinates 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_IsochoricMooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for isochoric mooney-rivlin hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_IsochoricMooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for isochoric mooney-rivlin hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_IsochoricMooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for isochoric mooney-rivlin hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_IsochoricMooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for isochoric mooney-rivlin hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_IsochoricNeoHookean(CeedScalar kappa, CeedScalar two_mu, CeedScalar Jm1, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for isochoric neo-Hookean hyperelasticity.

tau = 0.5 * kappa * (J^2-1) I + 2 mu J^{-2/3} e_dev

Parameters:
  • kappa[in] Bulk modulus

  • two_mu[in] Two times the shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_IsochoricNeoHookean(CeedScalar kappa, CeedScalar two_mu, CeedScalar Jm1, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for isochoric neo-Hookean hyperelasticity.

S = 0.5 * kappa * (J^2-1) C_inv + 2 mu J^{-2/3} C_inv * E_dev

Parameters:
  • kappa[in] Bulk modulus

  • two_mu[in] Two times the shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_IsochoricNeoHookean_fwd(CeedScalar kappa, CeedScalar mu, CeedScalar Jm1, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar dS_sym[6])#

Compute derivative of second Kirchoff stress for isochoric neo-Hookean hyperelasticity.

dS = dS_vol + dS_iso dS_vol = kappa J^2 (C_inv:dE) C_inv + 0.5 * kappa * (J^2-1) dC_inv dS_iso = -4/3 mu J^(-2/3) (C_inv:dE) C_inv * E_dev - 1/3 mu J^(-2/3) dS_iso1 dS_iso1 = 2 tr(dE) C_inv + I1(C) dC_inv

Parameters:
  • kappa[in] Bulk modulus

  • mu[in] Shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • F[in] Deformation gradient

  • grad_du[in] Gradient of incremental change in u

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • dS_sym[out] Derivative of second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int Energy_IsochoricNeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for isochoric neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_IsochoricNeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for isochoric neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates 3 - p

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_IsochoricNeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for isochoric neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int f1_IsochoricNeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute P for isochoric neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored gradient of u with respect to physical coordinates

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

Returns:

An error code: 0 - success, otherwise - failure

int df1_IsochoricNeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of P for isochoric neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u with respect to physical coordinates 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_IsochoricNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for isochoric neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_IsochoricNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for isochoric neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_IsochoricNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for isochoric neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_IsochoricNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for isochoric neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int KirchhoffTau_IsochoricOgden(CeedScalar kappa, CeedScalar Jm1, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for IsochoricOgden hyperelasticity.

Parameters:
  • kappa[in] Bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • N[in] Number of Ogden parameters

  • m[in] Array of first ogden material model

  • alpha[in] Array of second ogden material model

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int SecondKirchhoffStress_IsochoricOgden(CeedScalar kappa, CeedScalar Jm1, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for IsochoricOgden hyperelasticity.

Parameters:
  • kappa[in] Bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • N[in] Number of ogden parameters

  • m[in] Array of first ogden material model

  • alpha[in] Array of second ogden material model

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int SecondKirchhoffStress_IsochoricOgden_fwd(CeedScalar kappa, CeedScalar Jm1, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar dS_sym[6])#

Compute derivative of second Kirchoff stress for IsochoricOgden hyperelasticity.

Parameters:
  • kappa[in] Bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • N[in] Number of ogden parameters

  • m[in] Array of first ogden material model

  • alpha[in] Array of second ogden material model

  • F[in] Deformation gradient

  • grad_du[in] Gradient of incremental change in u

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • dS_sym[out] Derivative of second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int Energy_IsochoricOgden(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for IsochoricOgden hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_IsochoricOgden(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for IsochoricOgden hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_IsochoricOgden(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for IsochoricOgden hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int f1_IsochoricOgdenInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute P for IsochoricOgden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored gradient of u with respect to physical coordinates

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

Returns:

An error code: 0 - success, otherwise - failure

int df1_IsochoricOgdenInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of P for IsochoricOgden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u with respect to physical coordinates 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_IsochoricOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for IsochoricOgden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_IsochoricOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for IsochoricOgden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_IsochoricOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for IsochoricOgden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_IsochoricOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for IsochoricOgden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_Linear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute Sigma for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = Sigma = lambda*trace(e)I + 2 mu e

Returns:

An error code: 0 - success, otherwise - failure

int df1_Linear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of Sigma for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dSigma = lambda tr(de) I + 2 mu de

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int Energy_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int MixedElasticityResidual(void *ctx, CeedInt Q, RatelComputef1_Mixed compute_f1_mixed, RatelComputeg0_Mixed compute_g0_mixed, bool has_state_values, bool has_stored_values, CeedInt num_active_field_eval_modes, const CeedScalar *const *in, CeedScalar *const *out)#

Compute mixed elasticity residual evaluation.

Parameters:
  • ctx[in] QFunction context, unused

  • Q[in] Number of quadrature points

  • compute_f1_mixed[in] Function to compute action of f1

  • compute_g0_mixed[in] Function to compute action of g0

  • has_state_values[in] Boolean flag indicating model state values in residual evaluation

  • has_stored_values[in] Boolean flag indicating model stores values in residual evaluation

  • num_active_field_eval_modes[in] Number of active field evaluation modes

  • in[in] Input arrays 0 - volumetric qdata

  • out[out] Output array output_data_offset - action of QFunction on displacement output_data_offset + 1 - action of QFunction on pressure

Returns:

An error code: 0 - success, otherwise - failure

int MixedElasticityJacobian(void *ctx, CeedInt Q, RatelComputedf1_fwd_Mixed compute_df1_mixed, RatelComputedg0_fwd_Mixed compute_dg0_mixed, bool has_state_values, bool has_stored_values, CeedInt num_active_field_eval_modes, const CeedScalar *const *in, CeedScalar *const *out)#

Compute mixed elasticity Jacobian evaluation.

Parameters:
  • ctx[in] QFunction context, holding common parameters and model parameters

  • Q[in] Number of quadrature points

  • compute_df1_mixed[in] Function to compute action of df1

  • compute_dg0_mixed[in] Function to compute action of dg0

  • has_state_values[in] Boolean flag indicating model state values in residual evaluation

  • has_stored_values[in] Boolean flag indicating model stores values in residual evaluation

  • num_active_field_eval_modes[in] Number of active field evaluation modes

  • in[in] Input arrays 0 - volumetric qdata input_data_offset - incremental change in u

  • out[out] Output array 0 - action of QFunction on displacement 1 - action of QFunction on pressure 2 - action of QFunction dynamic solver term

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3], CeedScalar *trace_e)#

Compute Sigma for linear mixed elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates 2 - p

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = Sigma = -p*I + 2*mu*e_dev

  • trace_e[out] Divergence of u = trace_e needed for computing g0 function

Returns:

An error code: 0 - success, otherwise - failure

int g0_MixedLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, const CeedScalar trace_e, CeedScalar *g0)#

Compute g0 for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 2 - p

  • out[out] Output arrays, unused

  • trace_e[in] Divergence of u = trace_e computed in f1 function

  • g0[out] g0 = -div(u) - p/kappa

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3], CeedScalar *trace_de, CeedScalar *Cinv_contract_dE)#

Compute linearization of Sigma for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of incremental change to u with respect to reference coordinates 2 - dp

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dSigma = -dp*I + 2*mu*de_dev

  • trace_de[out] Linearization of div(u): div_du = trace_de

  • Cinv_contract_dE[out] C_inv:dE, unused for mixed linear elasticity

Returns:

An error code: 0 - success, otherwise - failure

int dg0_MixedLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, const CeedScalar trace_de, const CeedScalar Cinv_contract_dE, CeedScalar *dg0)#

Compute linearization of g0 for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 2 - dp

  • out[out] Output arrays, unused

  • trace_de[in] Linearization of divergence of u: div(du) = trace_de computed in df1 function

  • Cinv_contract_dE[in] C_inv:dE unused for mixed linear elasticity

  • dg0[out] dg0 = -div(du) - dp/k

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for linear mixed elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedLinear_Platen(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Wrapper to compute Sigma for linear mixed elasticity platen BCs.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates 2 - p

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = Sigma = -p*I + 2*mu*e_dev

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedLinear_Platen(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Wrapper to compute linearization of Sigma for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of incremental change to u with respect to reference coordinates 2 - dp

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dSigma = -dp*I + 2*mu*de_dev

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for linear mixed elasticity.

Parameters:
  • ctx[in] QFunction context, holding BCPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for linear mixed elasticity.

Parameters:
  • ctx[in] QFunction context, holding BCPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int Energy_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates 2 - p

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates 3 - p

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for mixed linear elasticity.

Parameters:
  • ctx[in] QFunction context, holding LinearElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates 2 - p

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_MixedNeoHookean(CeedScalar two_mu, CeedScalar p, CeedScalar J, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for mixed neo-Hookean hyperelasticity.

tau = -p J I + 2 mu J^{-2/3} e_dev

Parameters:
  • two_mu[in] Two times the shear modulus

  • p[in] Pressure

  • J[in] Determinant of deformation gradient

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_MixedNeoHookean(CeedScalar two_mu, CeedScalar p, CeedScalar J, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for mixed neo-Hookean hyperelasticity.

S = -p J C_inv + 2 mu J^{-2/3} C_inv * E_dev

Parameters:
  • two_mu[in] Two times the shear modulus

  • p[in] Pressure

  • J[in] Determinant of deformation gradient

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_MixedNeoHookean_fwd(CeedScalar mu, CeedScalar p, CeedScalar J, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar dS_sym[6], CeedScalar *Cinv_contract_dE)#

Compute derivative of second Kirchoff stress for mixed neo-Hookean hyperelasticity.

dS = dS_vol + dS_iso dS_vol = -p J (C_inv:dE) C_inv - p J dC_inv dS_iso = -4/3 mu J^(-2/3) (C_inv:dE) C_inv * E_dev - 1/3 mu J^(-2/3) dS_iso1 dS_iso1 = 2 tr(dE) C_inv + I1(C) dC_inv

Parameters:
  • mu[in] Shear modulus

  • p[in] Pressure

  • J[in] Determinant of deformation gradient

  • F[in] Deformation gradient

  • grad_du[in] Gradient of incremental change in u

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • dS_sym[out] Derivative of second Kirchoff stress, in symmetric representation

  • Cinv_contract_dE[out] C_inv : dE

Returns:

An error code: 0 - success, otherwise - failure

int Energy_MixedNeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for mixed neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_MixedNeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for mixed neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates 3 - p

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_MixedNeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for mixed neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates 2 - p

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedNeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3], CeedScalar *Jm1)#

Compute P for mixed neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates 2 - pressure

  • out[out] Output arrays 0 - stored values: grad_u and p

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

  • Jm1[out] Determinant of deformation gradient - 1 needed for computing g0 function

Returns:

An error code: 0 - success, otherwise - failure

int g0_MixedNeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, const CeedScalar Jm1, CeedScalar *g0)#

Compute g0 for mixed neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 2 - p

  • out[out] Output arrays, unused

  • Jm1[in] Determinant of deformation gradient - 1 computed in f1 function

  • g0[out] g0 = (-(J^2 - 1) / (2J) - p/kappa ) * J

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedNeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3], CeedScalar *Jm1, CeedScalar *Cinv_contract_dE)#

Compute linearization of P for mixed neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u and p 2 - gradient of incremental change to u with respect to reference coordinates 3 - dp

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

  • Jm1[out] Determinant of deformation gradient - 1 needed for computing dg0 function

  • Cinv_contract_dE[out] C_inv:dE needed for computing dg0 function

Returns:

An error code: 0 - success, otherwise - failure

int dg0_MixedNeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, const CeedScalar Jm1, const CeedScalar Cinv_contract_dE, CeedScalar *dg0)#

Compute linearization of g0 for mixed neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 1 - stored gradient of u and p 3 - dp

  • out[out] Output arrays, unused

  • Jm1[in] Determinant of deformation gradient - 1 computed in df1 function

  • Cinv_contract_dE[in] C_inv:dE computed in df1 function

  • dg0[out] dg0 = ([-J^2 - J*p/kappa](C_inv:dE) - dp*J/kappa )

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_MixedNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for mixed neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_MixedNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for mixed neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedNeoHookeanInitial_Platen(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Wrapper to compute P for mixed neo-Hookean hyperelasticity in initial configuration for platen BCs.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates 2 - pressure

  • out[out] Output arrays 0 - stored values: grad_u and p

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedNeoHookeanInitial_Platen(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of P for mixed neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u and p 2 - gradient of incremental change to u with respect to reference coordinates 3 - dp

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_MixedNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding BCPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_MixedNeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding BCPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_MixedOgden(CeedScalar p, CeedScalar J, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for mixed ogden hyperelasticity.

Parameters:
  • p[in] Pressure

  • J[in] Determinant of deformation gradient

  • N[in] Number of ogden parameters

  • m[in] Array of first ogden material model

  • alpha[in] Array of second ogden material model

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_MixedOgden(CeedScalar p, CeedScalar J, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for mixed ogden hyperelasticity.

Parameters:
  • p[in] Pressure

  • J[in] Determinant of deformation gradient

  • N[in] Number of ogden parameters

  • m[in] Array of first ogden material model

  • alpha[in] Array of second ogden material model

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_MixedOgden_fwd(CeedScalar p, CeedScalar J, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar dS_sym[6], CeedScalar *Cinv_contract_dE)#

Compute derivative of second Kirchoff stress for mixed ogden hyperelasticity.

Parameters:
  • p[in] Pressure

  • J[in] Determinant of deformation gradient

  • N[in] Number of ogden parameters

  • m[in] Array of first ogden material model

  • alpha[in] Array of second ogden material model

  • F[in] Deformation gradient

  • grad_du[in] Gradient of incremental change in u

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • dS_sym[out] Derivative of second Kirchoff stress, in symmetric representation

  • Cinv_contract_dE[out] C_inv : dE

Returns:

An error code: 0 - success, otherwise - failure

int Energy_MixedOgden(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for mixed ogden hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_MixedOgden(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for mixed ogden hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates 3 - p

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_MixedOgden(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for mixed ogden hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates 2 - p

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedOgdenInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3], CeedScalar *Jm1)#

Compute P for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates 2 - pressure

  • out[out] Output arrays 0 - stored values: grad_u and p

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

  • Jm1[out] Determinant of deformation gradient - 1 needed for computing g0 function

Returns:

An error code: 0 - success, otherwise - failure

int g0_MixedOgdenInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, const CeedScalar Jm1, CeedScalar *g0)#

Compute g0 for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 2 - p

  • out[out] Output arrays, unused

  • Jm1[in] Determinant of deformation gradient - 1 computed in f1 function

  • g0[out] g0 = (-(J^2 - 1) / (2J) - p/kappa ) * J

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedOgdenInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3], CeedScalar *Jm1, CeedScalar *Cinv_contract_dE)#

Compute linearization of P for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u and p 2 - gradient of incremental change to u with respect to reference coordinates 3 - dp

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

  • Jm1[out] Determinant of deformation gradient - 1 needed for computing dg0 function

  • Cinv_contract_dE[out] C_inv:dE needed for computing dg0 function

Returns:

An error code: 0 - success, otherwise - failure

int dg0_MixedOgdenInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, const CeedScalar Jm1, const CeedScalar Cinv_contract_dE, CeedScalar *dg0)#

Compute linearization of g0 for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 1 - stored gradient of u and p 3 - dp

  • out[out] Output arrays, unused

  • Jm1[in] Determinant of deformation gradient - 1 computed in df1 function

  • Cinv_contract_dE[in] C_inv:dE computed in df1 function

  • dg0[out] dg0 = ([-J^2 - J*p/kappa](C_inv:dE) - dp*J/kappa )

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_MixedOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_MixedOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedOgdenInitial_Platen(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Wrapper to compute P for mixed ogden hyperelasticity in initial configuration in Platen BCs.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates 2 - pressure

  • out[out] Output arrays 0 - stored values: grad_u and p

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedOgdenInitial_Platen(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Wrapper to compute linearization of P for mixed ogden hyperelasticity in initial configuration in Platen BCs.

Parameters:
  • ctx[in] QFunction context, holding OgdenElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u and p 2 - gradient of incremental change to u with respect to reference coordinates 3 - dp

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_MixedOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding BCPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_MixedOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for mixed ogden hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding BCPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_MooneyRivlin(CeedScalar lambda, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for Mooney-Rivlin hyperelasticity.

tau = 2 (mu_1 + 2 mu_2) e + 2 mu_2 (trace(e) b - e*b) + 0.5 * lambda*(J^2 - 1)*I

Ref https://ratel.micromorph.org/doc/modeling/materials/mooney-rivlin/#equation-mooney-rivlin-tau-stable

Parameters:
  • lambda[in] Lamé parameter

  • mu_1[in] First Mooney-Rivlin parameter

  • two_mu_2[in] Two times the second Mooney-Rivlin parameter

  • Jm1[in] Determinant of deformation gradient - 1

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_MooneyRivlin(CeedScalar lambda, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for Mooney-Rivlin hyperelasticity.

S = 0.5 lambda (J^2 -1) * C_inv + 2 (mu_1 + 2 mu_2) C_inv * E + 2 mu_2 (tr(E) I - E)

Ref https://ratel.micromorph.org/doc/modeling/materials/mooney-rivlin/#equation-mooney-rivlin-tau-stable

Parameters:
  • lambda[in] Lamé parameter

  • mu_1[in] First Mooney-Rivlin parameter

  • two_mu_2[in] Two times the second Mooney-Rivlin parameter

  • Jm1[in] Determinant of deformation gradient - 1

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_MooneyRivlin_fwd(CeedScalar lambda, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar C_inv_sym[6], CeedScalar dS_sym[6])#

Compute derivative of second Kirchoff stress for Mooney-Rivlin hyperelasticity.

dS = lambda J^2 (C_inv:dE) * C_inv + (lambda/2*(J^2-1) - (mu_1 + 2 mu_2)) * dC_inv + 2 mu_2 (tr(dE)*I - dE)

Ref https://ratel.micromorph.org/doc/modeling/materials/mooney-rivlin/#equation-mooney-rivlin-tau-stable

Parameters:
  • lambda[in] Lamé parameter

  • mu_1[in] First Mooney-Rivlin parameter

  • two_mu_2[in] Two times the second Mooney-Rivlin parameter

  • Jm1[in] Determinant of deformation gradient - 1

  • F[in] Deformation gradient

  • grad_du[in] Gradient of incremental change in u

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • dS_sym[out] Derivative of second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTranspose_MooneyRivlin(CeedScalar lambda, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, const CeedScalar grad_du[3][3], const CeedScalar e_sym[6], CeedScalar FdSFTranspose[3][3])#

Compute F*dS*F^T for Mooney-Rivlin hyperelasticity in current configuration.

Ref https://ratel.micromorph.org/doc/modeling/methods/hyperelasticity/#equation-cur-simp-jac-mooney-rivlin

Parameters:
  • lambda[in] Lamé parameter

  • mu_1[in] First Mooney-Rivlin parameter

  • two_mu_2[in] Two times the second Mooney-Rivlin parameter

  • Jm1[in] Determinant of deformation gradient - 1

  • grad_du[in] Gradient of incremental change in u

  • e_sym[in] Green Euler strain, in symmetric representation

  • FdSFTranspose[out] F*dS*F^T needed for computing df1 in current configuration

Returns:

An error code: 0 - success, otherwise - failure

int Energy_MooneyRivlin(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_MooneyRivlin(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_MooneyRivlin(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

int f1_MooneyRivlinCurrent(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute tau for mooney-rivlin hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored, dXdx, tau, and determinant of deformation - 1

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

Returns:

An error code: 0 - success, otherwise - failure

int df1_MooneyRivlinCurrent(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization df1 for mooney-rivlin hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored dXdx, tau, and determinant of deformation - 1 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dtau - tau * grad_du^T

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_MooneyRivlinCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for mooney-rivlin hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_MooneyRivlinCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for mooney-rivlin hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_MooneyRivlinCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_MooneyRivlinCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_MooneyRivlinInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute P for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored gradient of u with respect to physical coordinates

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

Returns:

An error code: 0 - success, otherwise - failure

int df1_MooneyRivlinInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of P for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u with respect to physical coordinates 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_MooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_MooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_MooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_MooneyRivlinInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for Mooney-Rivlin hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding MooneyRivlinElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_NeoHookean(CeedScalar lambda, CeedScalar two_mu, CeedScalar Jm1, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for neo-Hookean hyperelasticity.

tau = 2 mu * e + 0.5 lambda (J^2 - 1) * I

Ref https://ratel.micromorph.org/doc/modeling/materials/neo-hookean/#equation-eq-tau-neo-hookean

Parameters:
  • lambda[in] Lamé parameter

  • two_mu[in] Two times the shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_NeoHookean(CeedScalar lambda, CeedScalar two_mu, CeedScalar Jm1, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for neo-Hookean hyperelasticity.

S = 0.5 lambda (J^2 -1) * C_inv + 2 mu C_inv * E

Ref https://ratel.micromorph.org/doc/modeling/materials/neo-hookean/#equation-eq-tau-neo-hookean

Parameters:
  • lambda[in] Lamé parameter

  • two_mu[in] Two times the shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelSecondKirchhoffStress_NeoHookean_fwd(CeedScalar lambda, CeedScalar mu, CeedScalar Jm1, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar C_inv_sym[6], CeedScalar dS_sym[6])#

Compute derivative of second Kirchoff stress for neo-Hookean hyperelasticity.

dS = lambda J^2 (C_inv:dE) * C_inv + (lambda/2*(J^2-1)-mu) * dC_inv

Ref https://ratel.micromorph.org/doc/modeling/materials/neo-hookean/#equation-eq-tau-neo-hookean

Parameters:
  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • F[in] Deformation gradient

  • grad_du[in] Gradient of incremental change in u

  • C_inv_sym[in] Inverse of right Cauchy-Green tensor, in symmetric representation

  • dS_sym[out] Derivative of second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTranspose_NeoHookean(CeedScalar lambda, CeedScalar mu, CeedScalar Jm1, const CeedScalar grad_du[3][3], CeedScalar FdSFTranspose[3][3])#

Compute F*dS*F^T for neo-Hookean hyperelasticity in current configuration.

Ref https://ratel.micromorph.org/doc/modeling/methods/hyperelasticity/#equation-cur-simp-jac

Parameters:
  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • grad_du[in] Gradient of incremental change in u

  • FdSFTranspose[out] F*dS*F^T needed for computing df1 in current configuration

Returns:

An error code: 0 - success, otherwise - failure

int Energy_NeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_NeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - u 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_NeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for neo-Hookean hyperelasticity.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

CeedScalar RatelStrainEnergy_NeoHookeanCurrent_AD(CeedScalar e_sym[6], CeedScalar lambda, CeedScalar mu)#

Compute strain energy for neo-Hookean hyperelasticity.

Parameters:
  • e_sym[in] Green Euler strain, in symmetric representation

  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

Returns:

A scalar value: strain energy

void RatelKirchhofftau_sym_NeoHookean_AD(const CeedScalar lambda, const CeedScalar mu, CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for neo-Hookean hyperelasticity in current configuration with Enzyme.

Parameters:
  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

  • e_sym[in] Green Euler strain, in symmetric representation

  • tau_sym[out] Kirchoff tau, in symmetric representation

void Rateldtau_fwd(const CeedScalar lambda, const CeedScalar mu, CeedScalar e_sym[6], CeedScalar de_sym[6], CeedScalar tau_sym[6], CeedScalar dtau_sym[6])#

Compute derivative of Kirchoff tau for neo-Hookean hyperelasticity in current configuration with Enzyme.

Parameters:
  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

  • e_sym[in] Green Euler strain, in symmetric representation

  • de_sym[out] Derivative of Green Euler strain, in symmetric representation

  • tau_sym[in] Kirchoff tau, in symmetric representation

  • dtau_sym[out] Derivative of Kirchoff tau, in symmetric representation

int f1_NeoHookeanCurrent_AD(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute tau for neo-Hookean hyperelasticity in current configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored dXdx and Green Euler strain

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

Returns:

An error code: 0 - success, otherwise - failure

int df1_NeoHookeanCurrent_AD(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of tau for neo-Hookean hyperelasticity in current configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored dXdx and Green Euler strain 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dtau - tau * (nabla_x du)^T

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_NeoHookeanCurrent_AD(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for neo-Hookean hyperelasticity in current configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_NeoHookeanCurrent_AD(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for neo-Hookean hyperelasticity in current configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_NeoHookeanCurrent(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute tau for neo-Hookean hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored, dXdx, tau, and determinant of deformation - 1

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

Returns:

An error code: 0 - success, otherwise - failure

int df1_NeoHookeanCurrent(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization df1 for neo-Hookean hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored dXdx, tau, and determinant of deformation - 1 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dtau - tau * grad_du^T

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_NeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for neo-Hookean hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_NeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for neo-Hookean hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_NeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for neo-Hookean hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_NeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for neo-Hookean hyperelasticity in current configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

CeedScalar RatelStrainEnergy_NeoHookeanInitial_AD(CeedScalar E_sym[6], CeedScalar lambda, CeedScalar mu)#

Compute strain energy for neo-Hookean hyperelasticity.

Parameters:
  • E_sym[in] Green Lagrange strain, in symmetric representation

  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

Returns:

A scalar value: strain energy

void SecondPiolaKirchhoffStress_NeoHookean_AD(const CeedScalar lambda, const CeedScalar mu, CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Piola-Kirchhoff for neo-Hookean hyperelasticity in initial configuration with Enzyme.

Parameters:
  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

  • E_sym[in] Green Lagrange strain, in symmetric representation

  • S_sym[out] Second Piola-Kirchhoff, in symmetric representation

void S_augmentfwd(double *S, double *E, const double lambda, const double mu, double *tape)#

Compute first Piola-Kirchhoff for neo-Hookean hyperelasticity in initial configuration with Enzyme.

Parameters:
  • E[in] Green Lagrange strain

  • S[in] Second Piola-Kirchhoff

  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

  • tape[out] Enzyme tape

void dS_fwd(double *dS, double *dE, const double lambda, const double mu, const double *tape)#

Compute derivative of first Piola-Kirchhoff for neo-Hookean hyperelasticity in initial configuration with Enzyme.

Parameters:
  • dS[out] Derivative of first Piola-Kirchoff

  • dE[out] Derivative of Green Lagrange strain

  • lambda[in] Lamé parameter

  • mu[in] Shear modulus

  • tape[in] Enzyme tape

int f1_NeoHookeanInitial_AD(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute P for neo-Hookean hyperelasticity in initial configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored gradient of u with respect to physical coordinates, Second Piola-Kirchhoff, and tape

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P = F * S

Returns:

An error code: 0 - success, otherwise - failure

int df1_NeoHookeanInitial_AD(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of P for neo-Hookean hyperelasticity in initial configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u with respect to physical coordinates, Second Piola-Kirchhoff, and tape 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP = dF * S + F * dS

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_NeoHookeanInitial_AD(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for neo-Hookean hyperelasticity in initial configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_NeoHookeanInitial_AD(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for neo-Hookean hyperelasticity in initial configuration with Enzyme.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_NeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute P for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - stored gradient of u with respect to physical coordinates

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = P

Returns:

An error code: 0 - success, otherwise - failure

int df1_NeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of P for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - stored gradient of u with respect to physical coordinates 2 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dP

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityResidual_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int ElasticityJacobian_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for neo-Hookean hyperelasticity in initial configuration.

Parameters:
  • ctx[in] QFunction context, holding NeoHookeanElasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_PlasticityLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar f1[3][3])#

Compute Sigma for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - previously accepted plastic state components 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - currently computed plastic state components

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = Sigma = lambda*trace(e)I + 2 mu e

Returns:

An error code: 0 - success, otherwise - failure

int df1_PlasticityLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar df1[3][3])#

Compute linearization of Sigma for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 0 - volumetric qdata 1 - previously accepted plastic state components 2 - stored values for total strain and s_trial 3 - gradient of incremental change to u with respect to reference coordinates

  • out[out] Output arrays, unused

  • dXdx[out] Coordinate transformation

  • df1[out] df1 = dSigma = lambda tr(de) I + 2 mu de

Returns:

An error code: 0 - success, otherwise - failure

int PlasticityResidual_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlasticityJacobian_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate Jacobian for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsResidual_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int PlatenBCsJacobian_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityPlatenData

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int Energy_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute strain energy for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - plastic state 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - strain energy

Returns:

An error code: 0 - success, otherwise - failure

int Diagnostic_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - plastic state 2 - u 3 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - projected diagnostic values

Returns:

An error code: 0 - success, otherwise - failure

int SurfaceForce_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for linear plasticity.

Parameters:
  • ctx[in] QFunction context, holding ElastoPlasticityParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - gradient of u with respect to reference coordinates

  • out[out] Output arrays 0 - surface force values

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_CEED_BP1(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for CEED BP1.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_CEED_BP1(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register CEED BP1 model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_CEED_BP2(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for CEED BP2.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_CEED_BP2(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register CEED BP2 model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_CEED_BP3(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for CEED BP3.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_CEED_BP3(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register CEED BP3 model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_CEED_BP4(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for CEED BP4.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_CEED_BP4(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register CEED BP4 model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityIsochoricMooneyRivlinInitial(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Isochoric Mooney-Rivlin hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityIsochoricMooneyRivlinInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Isochoric Mooney-Rivlin hyperelasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityIsochoricNeoHookeanInitial(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Isochoric Neo-Hookean hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityIsochoricNeoHookeanInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Isochoric Neo-Hookean hyperelasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityIsochoricOgdenInitial(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for IsochoricOgden hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityIsochoricOgdenInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register IsochoricOgden hyperelasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityLinear(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for linear elasticity.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityLinear(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register linear elastic model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityMixedLinear(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for linear elasticity.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityMixedLinear(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register mixed linear elastic model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityMixedNeoHookeanInitial(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for mixed Neo-Hookean hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityMixedNeoHookeanInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Mixed Neo-Hookean hyperelasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityMixedOgdenInitial(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for mixed Ogden hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityMixedOgdenInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Mixed Ogden hyperelasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityMooneyRivlinCurrent(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Mooney-Rivlin hyperelasticity at finite strain in current configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityMooneyRivlinCurrent(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Mooney-Rivlin hyperelasticity at finite strain in current configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityMooneyRivlinInitial(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Mooney-Rivlin hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityMooneyRivlinInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Mooney-Rivlin hyperelasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanCurrentAD(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Neo-Hookean hyperelasticity at finite strain in current configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanCurrentAD(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Neo-Hookean hyperelasticity at finite strain in current configuration using Enzyme-AD model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanCurrent(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Neo-Hookean hyperelasticity at finite strain in curent configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanCurrent(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Neo-Hookean hyperelasticity at finite strain in curent configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelCheckTapeSize_ElasticityNeoHookeanInitialAD(Ratel ratel)#

Helper function to check allocated Enzyme tape size.

Parameters:
  • ratel[in] Ratel context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanInitialAD(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Neo-Hookean hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanInitialAD(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Neo-Hookean hyperelasticity at finite strain in initial configuration using Enzyme-AD model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanInitial(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for Neo-Hookean hyperelasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register Neo-Hookean hyperelasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelCeedParamsContextCreate_MooneyRivlin(RatelMaterial material, CeedScalar nu, CeedScalar mu_1, CeedScalar mu_2, CeedScalar rho, CeedQFunctionContext *ctx)#

Set CeedQFunctionContext data and register fields for Mooney-Rivlin parameters.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup model parameters context

  • nu[in] Poisson’s ratio

  • mu_1[in] Material Property mu_1

  • mu_2[in] Material Property mu_2

  • rho[in] Density for scaled mass matrix

  • ctx[out] CeedQFunctionContext for Mooney-Rivlin parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsContextCreate_MooneyRivlin(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext for Mooney-Rivlin parameters.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup model parameters context

  • ctx[out] CeedQFunctionContext for Mooney-Rivlin parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsSmootherDataSetup_MooneyRivlin(RatelMaterial material)#

Setup data for CeedQFunctionContext for smoother with Mooney-Rivlin parameters.

Collective across MPI processes.

Parameters:
  • material[inout] RatelMaterial to setup model parameters context

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelCeedParamsContextCreate_NeoHookean(RatelMaterial material, CeedScalar nu, CeedScalar E, CeedScalar rho, CeedQFunctionContext *ctx)#

Set CeedQFunctionContext data and register fields for Neo-Hookean parameters.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup model params context

  • nu[in] Poisson’s ratio

  • E[in] Young’s Modulus

  • rho[in] Density for scaled mass matrix

  • ctx[out] CeedQFunctionContext for Neo-Hookean parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsContextCreate_NeoHookean(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext with Neo-Hookean parameters.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup model params context

  • ctx[out] CeedQFunctionContext for Neo-Hookean parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsSmootherDataSetup_NeoHookean(RatelMaterial material)#

Setup data for CeedQFunctionContext for smoother with Neo-Hookean parameters.

Collective across MPI processes.

Parameters:
  • material[inout] RatelMaterial to setup model params context

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelCeedParamsContextCreate_Ogden(RatelMaterial material, CeedScalar nu, CeedScalar *m, CeedScalar *alpha, PetscInt num_ogden_parameters, CeedScalar rho, CeedQFunctionContext *ctx)#

Set CeedQFunctionContext data and register fields for Ogden parameters.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup params context

  • nu[in] Poisson’s ratio

  • m[in] Array of material Properties for m

  • alpha[in] Array of material Properties for alpha

  • num_ogden_parameters[in] Number of parameters for Ogden model (Length of alpha=m)

  • rho[in] Density for scaled mass matrix

  • ctx[out] CeedQFunctionContext for Ogden parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsContextCreate_Ogden(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext for Ogden parameters.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup params context

  • ctx[out] CeedQFunctionContext for Ogden parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsSmootherDataSetup_Ogden(RatelMaterial material)#

Setup data for CeedQFunctionContext for smoother with Ogden parameters.

Collective across MPI processes.

Parameters:
  • material[inout] RatelMaterial to setup params context

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelCeedParamsContextCreate_PlasticityLinear(RatelMaterial material, CeedScalar hardening_A, CeedScalar yield_stress, CeedQFunctionContext *ctx)#

Set CeedQFunctionContext data and register fields for linear plasticity parameters.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup model params context

  • hardening_A[in] Hardening factor

  • yield_stress[in] Yield stress

  • ctx[out] CeedQFunctionContext for linear plasticity parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsContextCreate_PlasticityLinear(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext with linear plasticity parameters.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to setup model params context

  • ctx[out] CeedQFunctionContext for linear plasticity parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsSmootherDataSetup_PlasticityLinear(RatelMaterial material)#

Setup data for CeedQFunctionContext for smoother with linear plasticity parameters.

Collective across MPI processes.

Parameters:
  • material[inout] RatelMaterial to setup model params context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_PlasticityLinear(Ratel ratel, RatelMaterial material)#

Create RatelMaterial model data for linear plasticity at finite strain in initial configuration.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModel_PlasticityLinear(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#

Register linear plasticity at finite strain in initial configuration model.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • cl_argument[in] Command line argument to use for model

  • material_create_functions[out] PETSc function list for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_FEM(Ratel ratel, RatelMaterial material)#

Create a RatelMaterial object for a finite element model.

Parameters:
  • ratel[in] Ratel context

  • material[out] RatelMaterial context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelDMSetup_FEM(Ratel ratel, DM *dm_solution)#

Setup base and fine grid DM

Parameters:
  • ratel[inout] Ratel context

  • dm_solution[out] Fine grid FEM DM

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelEnergyDMSetup_FEM(Ratel ratel, DM *dm_energy)#

Setup strain energy computation DM

Parameters:
  • ratel[inout] Ratel context

  • dm_energy[out] Strain energy DM

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelDiagnosticDMsSetup_FEM(Ratel ratel, DM *dm_diagnostic, PetscInt *num_sub_dms_diagnostic, IS **is_sub_dms_diagnostic, DM **sub_dms_diagnostic)#

Setup diagnostic values DM objects.

Parameters:
  • ratel[inout] Ratel context

  • dm_diagnostic[out] Diagnostic value super DM

  • num_sub_dms_diagnostic[out] Number of diagnostic value sub DM

  • is_sub_dms_diagnostic[out] Index sets for diagnostic value sub DM

  • sub_dms_diagnostic[out] Diagnostic value sub DM

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelSurfaceForceCellToFaceDMSetup_FEM(Ratel ratel, DM *dm_surface_force)#

Setup surface force DM

Collective across MPI processes.

Parameters:
  • ratel[inout] Ratel context

  • dm_surface_force[out] Surface force DM

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelDMSetupByOrder_FEM(Ratel ratel, PetscBool setup_boundary, PetscBool setup_faces, PetscInt *orders, PetscInt coord_order, PetscBool setup_coords, PetscInt q_extra, CeedInt num_fields, const CeedInt *field_sizes, DM dm)#

Setup DM with FE space of appropriate degree.

Parameters:
  • ratel[in] Ratel context

  • setup_boundary[in] Flag to add Dirichlet boundary

  • setup_faces[in] Flag to setup face geometry

  • orders[in] Polynomial orders of field

  • coord_order[in] Polynomial order of coordinate basis, or RATEL_DECIDE for default

  • setup_coords[in] Flag to setup coordinate spaces

  • q_extra[in] Additional quadrature order, or RATEL_DECIDE for default

  • num_fields[in] Number of fields in solution vector

  • field_sizes[in] Array of number of components for each field

  • dm[out] DM to setup

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupVolumeQData_FEM(RatelMaterial material, const char *label_name, PetscInt label_value, CeedElemRestriction *restriction, CeedVector *q_data)#

Compute CeedOperator volumetric QData for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • label_name[in] DMPlex label name for volume

  • label_value[in] DMPlex label value for volume

  • restriction[out] CeedElemRestriction for QData

  • q_data[out] CeedVector holding QData

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupSurfaceGradientQData_FEM(RatelMaterial material, DM dm, const char *label_name, PetscInt label_value, CeedElemRestriction *restriction, CeedVector *q_data)#

Compute CeedOperator surface gradient QData for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm[in] DMPlex grid

  • label_name[in] DMPlex label name for surface

  • label_value[in] DMPlex label value for surface

  • restriction[out] CeedElemRestriction for QData

  • q_data[out] CeedVector holding QData

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupResidualJacobianSuboperators_FEM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_residual_ut, CeedOperator op_residual_utt, CeedOperator op_jacobian)#

Setup Residual and Jacobian CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[out] Composite residual u term CeedOperator to add RatelMaterial suboperator

  • op_residual_ut[out] Composite residual u_t term CeedOperator to add RatelMaterial suboperator

  • op_residual_utt[out] Composite residual u_tt term CeedOperator to add RatelMaterial suboperator

  • op_jacobian[out] Composite Jacobian CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupJacobianMultigridLevel_FEM(RatelMaterial material, DM dm_level, CeedVector m_loc, CeedOperator sub_op_jacobian_fine, CeedOperator op_jacobian_coarse, CeedOperator op_prolong, CeedOperator op_restrict)#

Setup multigrid level CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_level[in] DMPlex for multigrid level to setup

  • m_loc[in] CeedVector holding multiplicity

  • sub_op_jacobian_fine[in] Fine grid Jacobian CeedOperator

  • op_jacobian_coarse[inout] Composite Jacobian CeedOperator to add RatelMaterial suboperators

  • op_prolong[inout] Composite prolongation CeedOperator to add RatelMaterial suboperators

  • op_restrict[inout] Composite restriction CeedOperator to add RatelMaterial suboperators

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupEnergySuboperator_FEM(RatelMaterial material, DM dm_energy, CeedOperator op_energy)#

Setup energy CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_energy[in] DM for strain energy computation

  • op_energy[out] Composite energy CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupDiagnosticSuboperators_FEM(RatelMaterial material, DM dm_projected_diagnostic, DM dm_dual_diagnostic, CeedOperator op_mass_diagnostic, CeedOperator op_projected_diagnostic, CeedOperator op_dual_diagnostic)#

Setup diagnostic value CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_projected_diagnostic[in] DM for projected diagnostic value computation

  • dm_dual_diagnostic[in] DM for dual space diagnostic value computation

  • op_mass_diagnostic[out] Composite diagnostic value projection CeedOperator to add RatelMaterial suboperator

  • op_projected_diagnostic[out] Composite projected diagnostic value CeedOperator to add RatelMaterial suboperator

  • op_dual_diagnostic[out] Composite dual space diagnostic value CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupSurfaceForceSuboperators_FEM(RatelMaterial material, DM dm_surface_force, CeedOperator ops_surface_force[])#

Setup surface force CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_surface_force[in] DM for surface force computation

  • ops_surface_force[out] Array of composite surface force CeedOperator to add RatelMaterial suboperator for each face

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupSurfaceCentroidSuboperators_FEM(RatelMaterial material, DM dm_surface_displacement, CeedOperator ops_surface_centroid[])#

Setup surface centroid CeedOperators for RatelMaterial

Parameters:
  • material[in] RatelMaterial context

  • dm_surface_displacement[in] DM for surface displacement computation

  • ops_surface_centroid[out] Composite surface centroid CeedOperators to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupMMSErrorSuboperator_FEM(RatelMaterial material, CeedOperator op_mms_error)#

Setup MMS error CeedOperator for RatelMaterial

Parameters:
  • material[in] RatelMaterial context

  • op_mms_error[out] Composite MMS error CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate(Ratel ratel, const char *material_name, RatelMaterial *material)#

Create a RatelMaterial object.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material_name[in] Material name for command line prefix

  • material[out] Address to store newly created RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialView(RatelMaterial material, PetscViewer viewer)#

View a RatelMaterial object.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial to view

  • viewer[in] Visualization context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelModelDataView(RatelModelData model_data, CeedQFunctionContext context, PetscViewer viewer)#

View material model parameters.

Collective across MPI processes.

Parameters:
  • model_data[in] RatelModelData to view

  • context[in] Initialized CeedQFunctionContext with parameter values, or NULL

  • viewer[in] PetscViewer to print to

PetscErrorCode RatelModelParameterDataView(RatelModelParameterData param_data, CeedQFunctionContext context, PetscViewer viewer)#

View material model parameters.

Collective across MPI processes.

Parameters:
  • param_data[in] RatelModelParameterData to view

  • context[in] Initialized CeedQFunctionContext with parameter values, or NULL

  • viewer[in] PetscViewer to print to

PetscErrorCode RatelMaterialDestroy(RatelMaterial *material)#

Destroy a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[inout] RatelMaterial to destroy

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetActiveFieldSizes(RatelMaterial material, CeedInt *num_active_fields, const CeedInt **active_field_sizes)#

Get number of components for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • num_active_fields[out] Number of components in RatelMaterial

  • active_field_sizes[out] Number of components in RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetNumDiagnosticComponents(RatelMaterial material, CeedInt *num_components_projected, CeedInt *num_components_dual)#

Get number of diagnostic components for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • num_components_projected[out] Number of projected diagnostic components in RatelMaterial

  • num_components_dual[out] Number of dual space diagnostic components in RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetNumStateComponents(RatelMaterial material, CeedInt *num_comp_state)#

Get number of state components for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • num_comp_state[out] Number of state fields in RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetActiveFieldNames(RatelMaterial material, const char ***active_field_names, const char ***active_component_names)#

Get active field names for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • active_field_names[out] Names of fields in RatelMaterial

  • active_component_names[out] Names of components in RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetDiagnosticComponentNames(RatelMaterial material, const char ***projected_component_names, const char ***dual_component_names)#

Get diagnostic component names for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • projected_component_names[out] Names of projected diagnostic component in RatelMaterial

  • dual_component_names[out] Names of dual space diagnostic component in RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetVolumeLabelName(RatelMaterial material, const char **label_name)#

Get volume label name for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • label_name[out] Volume label name for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetVolumeLabelValues(RatelMaterial material, PetscInt *num_label_values, PetscInt **label_values)#

Get volume label values for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • num_label_values[out] Number of label values for RatelMaterial

  • label_values[out] Volume label values for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetVolumeLabelValue(RatelMaterial material, PetscInt label_value)#

Set volume label values for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[inout] RatelMaterial context

  • label_value[in] Volume label value to set for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetModelType(RatelMaterial material, RatelModelType *model_type)#

Get RatelModelType for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • model_type[out] RatelModelType for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetMaterialName(RatelMaterial material, const char **material_name)#

Get material name for a RatelMaterial, or NULL if none set.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • material_name[out] char array holding model name

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetModelName(RatelMaterial material, const char **model_name)#

Get model name for a RatelMaterial.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • model_name[out] char array holding model name

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetSurfaceGradientLabelName(RatelMaterial material, PetscInt dm_face, const char **label_name)#

Get label name for solution DM for a RatelMaterial by face number.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_face[in] DMPlex face number

  • label_name[out] char array holding label name

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetSurfaceGradientDiagnosticLabelName(RatelMaterial material, PetscInt dm_face, const char **label_name)#

Get label name for diagnostic DM for a RatelMaterial by face number.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_face[in] DMPlex face number

  • label_name[out] char array holding label name

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetSurfaceGradientOperatorFaceLabelAndValue(RatelMaterial material, CeedOperator op, DMLabel *face_domain_label, PetscInt *face_domain_value)#

Get domain label and domain value for solution DM for a RatelMaterial from CeedOperator context.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op[in] CeedOperator with "face id" and "face domain value" fields

  • face_domain_label[out] DMPlex label corresponding to face domain

  • face_domain_value[out] Stratum value

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetInitialRandomScaling(RatelMaterial material, PetscScalar *initial_random_scaling)#

Get scaling factor for initial random noise to add to zero initial condition for material model.

0.0 indicates that the material model does not require initial random noise for inital condition.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • initial_random_scaling[out] Scaling factor for initial random noise to add to zero initial condition for material model

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialHasMMS(RatelMaterial material, PetscBool *has_mms)#

Determine if RatelMaterial has MMS solution.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • has_mms[out] Boolean flag indicating if RatelMaterial has MMS solution

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetCLPrefix(RatelMaterial material, char **cl_prefix)#

Get command line option prefix for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • cl_prefix[out] Command line option prefix for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetCLMessage(RatelMaterial material, char **cl_message)#

Get command line option message for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • cl_message[out] Command line option message for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreateOperatorName(RatelMaterial material, const char *base_name, char **operator_name)#

Build CeedOperator name for RatelMaterial.

Note: Caller is responsible for freeing the allocated name string PetscFree().

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • base_name[in] String holding base name for operator

  • operator_name[out] String holding operator name for RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetSolutionData(RatelMaterial material, CeedInt *num_active_fields, CeedElemRestriction **restrictions, CeedBasis **bases)#

Get CeedElemRestriction and CeedBasis objects corresponding to residual evaluation.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • num_active_fields[out] Number of active fields in residual evaluation

  • restrictions[out] CeedElemRestriction objects corresponding to residual evaluation

  • bases[out] CeedBasis objects corresponding to residual evaluation

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetOperatorName(RatelMaterial material, const char *base_name, CeedOperator op)#

Build CeedOperator name for RatelMaterial.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • base_name[in] String holding base name for operator

  • op[inout] CeedOperator to set the name for

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetVolumeQData(RatelMaterial material, CeedElemRestriction *restriction, CeedVector *q_data)#

Get CeedOperator volumetric QData for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • restriction[out] CeedElemRestriction for QData

  • q_data[out] CeedVector holding QData

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetSurfaceGradientQData(RatelMaterial material, PetscInt dm_face, PetscInt orientation, CeedElemRestriction *restriction, CeedVector *q_data)#

Get CeedOperator surface gradient QData for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_face[in] DMPlex face number

  • orientation[in] Face orientation number, giving DMLabel value

  • restriction[out] CeedElemRestriction for QData

  • q_data[out] CeedVector holding QData

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetSurfaceGradientDiagnosticQData(RatelMaterial material, DM dm, PetscInt dm_face, PetscInt orientation, CeedElemRestriction *restriction, CeedVector *q_data)#

Get CeedOperator diagnostic surface gradient QData for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm[in] DMPlex to use for diagnostic QData

  • dm_face[in] DMPlex face number

  • orientation[in] Face orientation number, giving DMLabel value

  • restriction[out] CeedElemRestriction for QData

  • q_data[out] CeedVector holding QData

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupResidualJacobianSuboperators(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_residual_ut, CeedOperator op_residual_utt, CeedOperator op_jacobian)#

Setup residual and Jacobian CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[out] Composite residual u term CeedOperator to add RatelMaterial suboperator

  • op_residual_ut[out] Composite residual u_t term CeedOperator to add RatelMaterial suboperator

  • op_residual_utt[out] Composite residual u_tt term CeedOperator to add RatelMaterial suboperator

  • op_jacobian[out] Composite Jacobian CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupPlatenSuboperators(RatelMaterial material, CeedOperator op_residual_u, CeedVector u_dot_loc, CeedOperator op_jacobian)#

Setup residual and Jacobian CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[out] Composite residual u term CeedOperator to add RatelMaterial suboperator

  • u_dot_loc[out] CeedVector for passive input velocity field

  • op_jacobian[out] Composite Jacobian CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupMultigridLevel(RatelMaterial material, DM dm_level, CeedVector m_loc, CeedOperator op_jacobian_fine, CeedOperator op_jacobian_coarse, CeedOperator op_prolong, CeedOperator op_restrict)#

Setup multigrid level CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_level[in] DMPlex for multigrid level to setup

  • m_loc[in] CeedVector holding multiplicity

  • op_jacobian_fine[in] Composite Jacobian CeedOperator holding fine grid suboperators

  • op_jacobian_coarse[inout] Composite Jacobian CeedOperator to add RatelMaterial suboperators

  • op_prolong[inout] Composite prolongation CeedOperator to add RatelMaterial suboperators

  • op_restrict[inout] Composite restriction CeedOperator to add RatelMaterial suboperators

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetJacobianSmootherContext(RatelMaterial material, PetscBool set_or_unset, CeedOperator op_jacobian, PetscBool *was_set)#

Set smoother contexts for Jacobian operators for RatelMaterial.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • set_or_unset[in] Boolean flag to set (PETSC_TRUE) or unset (PETSC_FALSE) the smoother context

  • op_jacobian[inout] Composite Jacobian CeedOperator to update

  • was_set[out] Boolean flag indicating if any smoother context was set.

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialAcceptState(RatelMaterial material, CeedOperator op_residual)#

Accept material state update after TS update.

not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual[inout] Composite residual CeedOperator to update

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupEnergySuboperator(RatelMaterial material, DM dm_energy, CeedOperator op_energy)#

Setup energy CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_energy[in] DM for strain energy computation

  • op_energy[out] Composite energy CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupDiagnosticSuboperators(RatelMaterial material, DM dm_projected_diagnostic, DM dm_dual_diagnostic, CeedOperator op_mass_diagnostic, CeedOperator op_projected_diagnostic, CeedOperator op_dual_diagnostic)#

Setup diagnostic value CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_projected_diagnostic[in] DM for projected diagnostic value computation

  • dm_dual_diagnostic[in] DM for dual space diagnostic value computation

  • op_mass_diagnostic[out] Composite diagnostic value projection CeedOperator to add RatelMaterial suboperator

  • op_projected_diagnostic[out] Composite projected diagnostic value CeedOperator to add RatelMaterial suboperator

  • op_dual_diagnostic[out] Composite dual space diagnostic value CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupSurfaceForceCellToFaceSuboperators(RatelMaterial material, DM dm_surface_force, CeedOperator *ops_surface_force)#

Setup surface force CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_surface_force[in] DM for surface force computation

  • ops_surface_force[out] Composite surface force CeedOperators to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupMMSErrorSuboperator(RatelMaterial material, CeedOperator op_mms_error)#

Setup MMS error CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_mms_error[out] Composite MMS error CeedOperator to add RatelMaterial suboperator

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelRegisterModels(Ratel ratel, PetscFunctionList *material_create_functions)#

Register setup functions for models.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • material_create_functions[out] Function list for creating RatelMaterial

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelModelDataVerifyRelativePath(Ratel ratel, RatelModelData model_data)#

Verify all CeedQFunction source paths are relative to Ratel JiT root directory.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • model_data[inout] Model data to check CeedQFunction source paths

Returns:

An error code: 0 - success, otherwise - failure

RATEL_NUMBER_COMMON_PARAMETERS#

Number of common model parameters.

RATEL_COMMON_PARAMETER_RHO#

Index of common parameter rho

RATEL_COMMON_PARAMETER_SHIFT_V#

Index of common parameter shift_v.

RATEL_COMMON_PARAMETER_SHIFT_A#

Index of common parameter shift_a.

RATEL_MAX_PLATEN_MATERIAL_SIZE#

Maximum material context size for platen BCs.

Q_DATA_SURFACE_FORCE_GEOMETRY_SIZE#
Q_DATA_SURFACE_GEOMETRY_SIZE#
Q_DATA_VOLUMETRIC_GEOMETRY_SIZE#
Q_DATA_VOLUMETRIC_SYMMETRIC_GEOMETRY_SIZE#
NUM_COMPONENTS_DIAGNOSTIC_Dual#
NUM_COMPONENTS_DIAGNOSTIC_IsochoricMooneyRivlin#
FLOPS_Tau_IsochoricMooneyRivlin#
FLOPS_S_IsochoricMooneyRivlin#
FLOPS_dS_vol_IsochoricMooneyRivlin#
FLOPS_dS1_iso_IsochoricMooneyRivlin#
FLOPS_dS2_iso_IsochoricMooneyRivlin#
FLOPS_dS3_iso_IsochoricMooneyRivlin#
FLOPS_dS_iso_IsochoricMooneyRivlin#
FLOPS_dS_IsochoricMooneyRivlin#
NUM_COMPONENTS_STATE_IsochoricMooneyRivlinInitial#
NUM_COMPONENTS_STORED_IsochoricMooneyRivlinInitial#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricMooneyRivlinInitial#
FLOPS_df1_IsochoricMR_Initial#
FLOPS_JACOBIAN_IsochoricMooneyRivlinInitial#
NUM_COMPONENTS_DIAGNOSTIC_IsochoricNeoHookean#
FLOPS_Tau_IsochoricNeoHookean#
FLOPS_S_IsochoricNeoHookean#
FLOPS_dS_vol_IsochoricNeoHookean#
FLOPS_dS_iso_IsochoricNeoHookean#
FLOPS_dS_IsochoricNeoHookean#
NUM_COMPONENTS_STATE_IsochoricNeoHookeanInitial#
NUM_COMPONENTS_STORED_IsochoricNeoHookeanInitial#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricNeoHookeanInitial#
FLOPS_df1_IsochoricNH_Initial#
FLOPS_JACOBIAN_IsochoricNeoHookeanInitial#
NUM_COMPONENTS_DIAGNOSTIC_IsochoricOgden#
FLOPS_Tau_IsochoricOgden#
FLOPS_S_IsochoricOgden#
FLOPS_dS_IsochoricOgden#
NUM_COMPONENTS_STATE_IsochoricOgdenInitial#
NUM_COMPONENTS_STORED_IsochoricOgdenInitial#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricOgdenInitial#
FLOPS_df1_IsochoricOgden_Initial#
FLOPS_JACOBIAN_IsochoricOgdenInitial#
NUM_COMPONENTS_STATE_Linear#
NUM_COMPONENTS_STORED_Linear#
NUM_ACTIVE_FIELD_EVAL_MODES_Linear#
NUM_COMPONENTS_DIAGNOSTIC_Linear#
FLOPS_df1_Linear#
FLOPS_JACOBIAN_Linear#
NUM_COMPONENTS_STATE_MixedLinear#
NUM_COMPONENTS_STORED_MixedLinear#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear_u#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear_p#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear#
NUM_COMPONENTS_DIAGNOSTIC_MixedLinear#
FLOPS_df1_MixedLinear#
FLOPS_JACOBIAN_MixedLinear#
NUM_COMPONENTS_DIAGNOSTIC_MixedNeoHookean#
FLOPS_J_pow#
FLOPS_Tau_MixedNeoHookean#
FLOPS_S_MixedNeoHookean#
FLOPS_dS_vol_MixedNeoHookean#
FLOPS_dS_iso_MixedNeoHookean#
FLOPS_dS_MixedNeoHookean#
NUM_COMPONENTS_STATE_MixedNeoHookeanInitial#
NUM_COMPONENTS_STORED_MixedNeoHookeanInitial#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial_u#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial_p#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial#
FLOPS_df1_MixedNH_Initial#
FLOPS_JACOBIAN_MixedNeoHookeanInitial#
NUM_COMPONENTS_DIAGNOSTIC_MixedOgden#
FLOPS_Tau_MixedOgden#
FLOPS_S_MixedOgden#
FLOPS_dS_vol_MixedOgden#
FLOPS_dS_iso_MixedOgden#
FLOPS_dS_MixedOgden#
NUM_COMPONENTS_STATE_MixedOgdenInitial#
NUM_COMPONENTS_STORED_MixedOgdenInitial#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial_u#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial_p#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial#
FLOPS_df1_MixedOgden_Initial#
FLOPS_JACOBIAN_MixedOgdenInitial#
NUM_COMPONENTS_DIAGNOSTIC_MooneyRivlin#
FLOPS_Tau_MooneyRivlin#
FLOPS_S_MooneyRivlin#
FLOPS_dS_MooneyRivlin#
FLOPS_FdSFTranspose_MooneyRivlin#
NUM_COMPONENTS_STATE_MooneyRivlinCurrent#
NUM_COMPONENTS_STORED_MooneyRivlinCurrent#
NUM_ACTIVE_FIELD_EVAL_MODES_MooneyRivlinCurrent#
FLOPS_df1_MR_Current#
FLOPS_JACOBIAN_MooneyRivlinCurrent#
NUM_COMPONENTS_STATE_MooneyRivlinInitial#
NUM_COMPONENTS_STORED_MooneyRivlinInitial#
NUM_ACTIVE_FIELD_EVAL_MODES_MooneyRivlinInitial#
FLOPS_df1_MR_Initial#
FLOPS_JACOBIAN_MooneyRivlinInitial#
NUM_COMPONENTS_DIAGNOSTIC_NeoHookean#
FLOPS_Tau_NeoHookean#
FLOPS_S_NeoHookean#
FLOPS_dS_NeoHookean#
FLOPS_FdSFTranspose_NeoHookean#
NUM_COMPONENTS_STATE_NeoHookeanCurrent_AD#
NUM_COMPONENTS_STORED_NeoHookeanCurrent_AD#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanCurrent_AD#
NUM_COMPONENTS_STATE_NeoHookeanCurrent#
NUM_COMPONENTS_STORED_NeoHookeanCurrent#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanCurrent#
FLOPS_df1_NH_Current#
FLOPS_JACOBIAN_NeoHookeanCurrent#
RATEL_ELASTICITY_NEO_HOOKEAN_INITIAL_AD_TAPE_SIZE#
NUM_COMPONENTS_STATE_NeoHookeanInitial_AD#
NUM_COMPONENTS_STORED_NeoHookeanInitial_AD#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanInitial_AD#
NUM_COMPONENTS_STATE_NeoHookeanInitial#
NUM_COMPONENTS_STORED_NeoHookeanInitial#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanInitial#
FLOPS_df1_NH_Initial#
FLOPS_JACOBIAN_NeoHookeanInitial#
NUM_COMPONENTS_STATE_PlasticityLinear#
NUM_COMPONENTS_STORED_PlasticityLinear#
NUM_ACTIVE_FIELD_EVAL_MODES_PlasticityLinear#
NUM_COMPONENTS_DIAGNOSTIC_PlasticityLinear#
struct RatelModelParameter#
#include <ratel-impl.h>

Information about a single material model parameter.

Public Members

const char *name#

Name of parameter, used for PetscOptions, e.g. “nu”.

const char *description#

Description of parameter, used for PetscOptions.

const char *units#

SI units expected by the parameter, e.g. “Pa”.

const char *restrictions#

Expected domain of values, e.g. “0 <= nu < 0.5”.

PetscBool is_required#

Is parameter required?

PetscBool is_hidden#

Should parameter be hidden in RatelModelParameterDataView?

PetscScalar default_value#

Default value.

PetscSizeT offset#

Offset into context.

struct LinearElasticityParams#
#include <elasticity-linear.h>

Elastic model data.

Public Members

CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#

Common properties.

CeedScalar nu#

Poisson’s ratio.

CeedScalar E#

Young’s modulus.

struct MooneyRivlinElasticityParams#
#include <mooney-rivlin.h>

Mooney-Rivlin model data.

Public Members

CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#

Common properties.

CeedScalar mu_1#

Mooney-Rivlin property.

CeedScalar mu_2#

Mooney-Rivlin property.

CeedScalar nu#

Poisson’s ratio.

struct OgdenElasticityParams#
#include <ogden.h>

Elastic model data.

Public Members

CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#

Common properties.

CeedScalar nu#

Poisson’s ratio.

CeedScalar m[RATEL_NUMBER_OGDEN_PARAMETERS]#

Ogden’s first parameters.

CeedScalar alpha[RATEL_NUMBER_OGDEN_PARAMETERS]#

Ogden’s second parameters.

CeedScalar mu#

Shear modulus.

CeedInt num_ogden_parameters#

Number of Ogden’s parameters.

struct LinearPlasticityParams#
#include <plasticity-linear.h>

Plasticity model data.

Public Members

CeedScalar yield_stress#

Poisson’s ratio.

CeedScalar hardening_A#

Young’s modulus.

struct ElastoPlasticityParams#
#include <plasticity-linear.h>

Plasticity model data.

Public Members

LinearElasticityParams elasticity_params#

Elastic model parameters.

LinearPlasticityParams plasticity_params#

Plastic model parameters.

struct BCPlatenDataCommon#
#include <platen-parameters.h>

Common Platen BC data.

Public Members

CeedScalar normal[3]#

Exterior normal for platen.

CeedScalar center[3]#

Center of the platen.

CeedScalar distance[RATEL_MAX_BC_INTERP_POINTS]#

Displacement of the platen along normal vector.

CeedScalar times[RATEL_MAX_BC_INTERP_POINTS]#

Transition times.

CeedInt num_times#

Number of transition times.

RatelBCInterpolationType interpolation_type#

Type of interpolation between points.

CeedScalar gamma#

Nitsche’s method parameter.

CeedScalar f#

Coefficient of friction.

CeedInt face_id#

DM face id.

CeedInt face_domain_value#

DM face orientation.

struct RatelBCPlatenData#
#include <platen-parameters.h>

Platen BC data, including material data.

Public Members

BCPlatenDataCommon platen#

Common platen data.

CeedScalar time#

Current solver time.

CeedScalar material[RATEL_MAX_PLATEN_MATERIAL_SIZE]#

Material data.