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.

typedef PetscErrorCode (*RatelMaterialSetupMultigridLevelFunction)(RatelMaterial material, DM dm_level, CeedVector m_loc, CeedOperator sub_op_fine, CeedOperator op_coarse, CeedOperator op_prolong, CeedOperator op_restrict)#

Material model multigrid level setup function.

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*, const CeedScalar, CeedScalar *const*, CeedScalar*)#
typedef int (*RatelComputedg0_fwd_Mixed)(void*, CeedInt, CeedInt, const CeedScalar *const*, const CeedScalar, const CeedScalar, CeedScalar *const*, CeedScalar*)#
struct RatelModelParameterData_private elasticity_damage_param_data_private#

Elasticity+damage model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData elasticity_damage_param_data = &elasticity_damage_param_data_private#
struct RatelModelParameterData_private mixed_neo_hookean_param_data_private#

Mixed Neo-Hookean model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData mixed_neo_hookean_param_data = &mixed_neo_hookean_param_data_private#
struct RatelModelParameterData_private mms_ceed_bps_param_data_private#

CEED BPs MMS model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData mms_ceed_bps_param_data = &mms_ceed_bps_param_data_private#
struct RatelModelParameterData_private mms_linear_elasticity_param_data_private#

Linear elasticity MMS model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData mms_linear_elasticity_param_data = &mms_linear_elasticity_param_data_private#
struct RatelModelParameterData_private mooney_rivlin_param_data_private#

Mooney-Rivlin model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData mooney_rivlin_param_data = &mooney_rivlin_param_data_private#
struct RatelModelParameterData_private neo_hookean_param_data_private#

Neo-Hookean model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData neo_hookean_param_data = &neo_hookean_param_data_private#
struct RatelModelParameterData_private ogden_param_data_private#

Ogden model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData ogden_param_data = &ogden_param_data_private#
struct RatelModelParameterData_private plasticity_linear_param_data_private#

Linear plasticity model parameters for CeedQFunctionContext and viewing.

RatelModelParameterData plasticity_linear_param_data = &plasticity_linear_param_data_private#
const char DMSwarmPICField_volume[] = "volume"#
int RestrictBoundingBox(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Restrict the bounding box of the domain to a given bounding box.

Parameters:
  • ctx[in] QFunction context, RatelBoundingBoxParamsContext

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - x, physical (initial) coordinates

    • 1 - scale, multiplicity scaling factor

    • 2 - r, current timestep residual

  • out[out] Output array

    • 0 - v, current timestep residual restricted to bounding box

Returns:

An error code: 0 - success, otherwise - failure

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

Compute geometric factors for integration, gradient transformations, and coordinate transformations on element faces, restricted by a bounding box.

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, RatelBoundingBoxParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - Face coordinates

    • 1 - Jacobian of face coordinates

    • 2 - quadrature weights

  • out[out] Output array

    • 0 - qdata, w detNb and N

Returns:

An error code: 0 - success, otherwise - failure

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 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 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 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 bulk, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for isochoric Mooney-Rivlin hyperelasticity.

Parameters:
  • bulk[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

  • J_pow[in] J^{-2/3}

  • 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 bulk, 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:
  • bulk[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 bulk, 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:
  • bulk[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 RatelComputeFdSFTranspose_IsochoricMooneyRivlin(CeedScalar bulk, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar grad_du[3][3], const CeedScalar e_sym[6], CeedScalar FdSFTranspose[3][3])#

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

Parameters:
  • bulk[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; J - 1

  • J_pow[in] J^{-2/3}

  • 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 StrainEnergy_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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 SurfaceForceCellToFace_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 RatelMooneyRivlinElasticityParams

  • 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_IsochoricMooneyRivlinCurrent(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 isochoric Mooney-Rivlin hyperelasticity in current configuration.

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

  • 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, e, J - 1 and J^{-2/3}

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

Returns:

An error code: 0 - success, otherwise - failure

int df1_IsochoricMooneyRivlinCurrent(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 df1 for isochoric Mooney-Rivlin hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - stored dXdx, e, J - 1 and J^{-2/3}

    • 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_IsochoricMooneyRivlinCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for isochoric Mooney-Rivlin hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Evaluate Jacobian for isochoric Mooney-Rivlin hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • 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 bulk, CeedScalar two_mu, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for isochoric neo-Hookean hyperelasticity.

tau = [bulk * J dV/dJ] I + 2 mu J^{-2/3} e_dev

Parameters:
  • bulk[in] Bulk modulus

  • two_mu[in] Two times the shear modulus

  • Jm1[in] Determinant of deformation gradient - 1; J - 1

  • J_pow[in] J^{-2/3}

  • 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 bulk, 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 = [bulk * J dV/dJ] * C_inv + 2 mu J^{-2/3} C_inv * E_dev

Parameters:
  • bulk[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 bulk, 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

Parameters:
  • bulk[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 RatelComputeFdSFTranspose_IsochoricNeoHookean(CeedScalar bulk, CeedScalar mu, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar grad_du[3][3], const CeedScalar e_sym[6], CeedScalar FdSFTranspose[3][3])#

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

Parameters:
  • bulk[in] Bulk modulus

  • mu[in] Shear modulus

  • Jm1[in] Determinant of deformation gradient - 1; J - 1

  • J_pow[in] J^{-2/3}

  • 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 StrainEnergy_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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 SurfaceForceCellToFace_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 RatelNeoHookeanElasticityParams

  • 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_IsochoricNeoHookeanCurrent(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 isochoric neo-Hookean hyperelasticity in current configuration.

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

  • 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, e, J - 1 and J^{-2/3}

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

Returns:

An error code: 0 - success, otherwise - failure

int df1_IsochoricNeoHookeanCurrent(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 df1 for isochoric neo-Hookean hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - stored dXdx, e, J - 1 and J^{-2/3}

    • 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_IsochoricNeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_IsochoricOgden(CeedScalar bulk, CeedScalar Jm1, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar J_pow_alpha[3], const CeedScalar series_terms[9], const CeedScalar e_vals[3], const CeedScalar e_vecs[3][3], CeedScalar tau_sym[6])#

Compute Kirchoff tau for isochoric Ogden hyperelasticity.

Parameters:
  • bulk[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

  • J_pow_alpha[in] Array of J^{-alpha[j]/3}, j=1..3

  • series_terms[in] Series terms

  • e_vals[in] Eigenvalues of Green Euler strain tensor

  • e_vecs[in] Eigenvectors of Green Euler strain tensor

  • tau_sym[out] Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int SecondKirchhoffStress_IsochoricOgden(CeedScalar bulk, 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 isochoric Ogden hyperelasticity.

Parameters:
  • bulk[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 bulk, 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 isochoric Ogden hyperelasticity.

Parameters:
  • bulk[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 RatelComputeFdSFTranspose_IsochoricOgden(CeedScalar bulk, CeedScalar Jm1, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar J_pow_alpha[3], const CeedScalar series_terms[9], const CeedScalar grad_du[3][3], const CeedScalar e_vals[3], const CeedScalar e_vecs[3][3], CeedScalar FdSFTranspose[3][3])#

Compute F*dS*F^T for isochoric Ogden hyperelasticity in current configuration.

Parameters:
  • bulk[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

  • J_pow_alpha[in] Array of J^{-alpha[j]/3}, j=1..3

  • series_terms[in] Series terms

  • grad_du[in] Gradient of incremental change in u

  • e_vals[in] Eigenvalues of Green Euler strain tensor

  • e_vecs[in] Eigenvectors of Green Euler strain tensor

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

Returns:

An error code: 0 - success, otherwise - failure

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

Compute strain energy for isochoric Ogden hyperelasticity.

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

  • 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 isochoric Ogden hyperelasticity.

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

  • 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 SurfaceForceCellToFace_IsochoricOgden(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for isochoric Ogden hyperelasticity.

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

  • 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_IsochoricOgdenCurrent(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 isochoric Ogden hyperelasticity in current configuration.

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

  • 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, e, J - 1 and J^{-alpha[j]/3}

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

Returns:

An error code: 0 - success, otherwise - failure

int df1_IsochoricOgdenCurrent(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 isochoric Ogden hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - stored, dXdx, e, J - 1 and J^{-alpha[j]/3}

    • 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_IsochoricOgdenCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute residual for isochoric Ogden hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Evaluate Jacobian for isochoric Ogden hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

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 isochoric Ogden hyperelasticity in initial configuration.

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

  • 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 isochoric Ogden hyperelasticity in initial configuration.

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

  • 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 isochoric Ogden hyperelasticity in initial configuration.

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

  • 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 isochoric Ogden hyperelasticity in initial configuration.

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

  • 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 isochoric Ogden hyperelasticity in initial configuration.

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

  • 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 isochoric Ogden hyperelasticity in initial configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int RatelIsochoricKirchhoffTau_NeoHookean(CeedScalar two_mu, CeedScalar J_pow, const CeedScalar e_sym[6], CeedScalar tau_iso_sym[6])#

Compute isochoric part of Kirchoff tau for neo-Hookean hyperelasticity.

tau_iso = 2 mu J^{-2/3} e_dev

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

  • J_pow[in] J^{-2/3}

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

  • tau_iso_sym[out] Isochoric Kirchoff tau, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelIsochoricSecondKirchhoffStress_NeoHookean(CeedScalar two_mu, CeedScalar J, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_iso_sym[6])#

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

S_iso = 2 mu J^{-2/3} C_inv * E_dev

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

  • 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_iso_sym[out] Isochoric second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelIsochoricSecondKirchhoffStress_NeoHookean_fwd(CeedScalar mu, 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 dC_inv_sym[6], CeedScalar dS_iso_sym[6], CeedScalar *Cinv_contract_dE)#

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

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

  • 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

  • dC_inv_sym[out] Derivative of C^{-1}, in symmetric representation

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

  • Cinv_contract_dE[out] C_inv : dE

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTransposeIsochoric_NeoHookean(CeedScalar mu, CeedScalar J_pow, const CeedScalar grad_du[3][3], const CeedScalar e_sym[6], CeedScalar depsilon_sym[6], CeedScalar FdSFTranspose_iso_sym[6], CeedScalar *trace_depsilon)#

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

Parameters:
  • mu[in] Shear modulus

  • J_pow[in] J^{-2/3}

  • grad_du[in] Gradient of incremental change in u

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

  • depsilon_sym[out] depsilon = (grad_du + grad_du^T)/2

  • FdSFTranspose_iso_sym[out] F*dS_iso*F^T needed for computing df1 in current configuration

  • trace_depsilon[out] trace(depsilon)

Returns:

An error code: 0 - success, otherwise - failure

CeedScalar PsiPlusLinear(const CeedScalar mu, const CeedScalar bulk, const CeedScalar trace_e, const CeedScalar ed[6])#

Compute Psi_plus for linear elasticity with damage.

Parameters:
  • mu[in] shear modulus

  • bulk[in] bulk modulus

  • trace_e[in] trace strain tensor

  • ed[out] deviatoric strain tensor

Returns:

Psi_plus

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

Compute u_t term of damage residual.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 2 - u_t (four components: 3 displacement components, 1 scalar damage field)

  • out[out] Output arrays

    • 2 - action on u_t

Returns:

An error code: 0 - success, otherwise - failure

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

Compute residual for linear elasticity with damage.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - Psi_plus and damage state

    • 2 - u (four components: 3 displacement components, 1 scalar damage field)

    • 3 - u_g gradient of u with respect to reference coordinates

  • out[out] Output arrays

    • 0 - Updated Psi_plus and damage state

    • 1 - stored vector

    • 2 - action on u

    • 3 - action on u_g

Returns:

An error code: 0 - success, otherwise - failure

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

Compute jacobian for linear elasticity with damage.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 2 - du (four components: 3 displacement components, 1 damage field)

    • 3 - du_g gradient of u with respect to reference coordinates

  • out[out] Output arrays

    • 0 - Psi_plus updated

    • 1 - stored vector

    • 2 - action on du

    • 3 - action on du_g

Returns:

An error code: 0 - success, otherwise - failure

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

Compute projected diagnostic values for linear elasticity with damage.

Parameters:
  • ctx[in] QFunction context holding RatelElasticityDamageParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - qdata

    • 1 - u (four components: 3 displacement components, 1 scalar damage field)

    • 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 StrainEnergy_ElasticityDamage(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute (degraded) strain energy for linear elasticity+damage.

Parameters:
  • ctx[in] QFunction context holding RatelElasticityDamageParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - qdata

    • 1 - u (4 components)

    • 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays

    • 0 - (degraded) strain energy

Returns:

An error code: 0 - success, otherwise - failure

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

Compute (degraded) surface force for linear elasticity+damage.

Parameters:
  • ctx[in] QFunction context holding RatelElasticityDamageParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - qdata

    • 1 - u (4 components)

    • 2 - gradient of u with respect to reference coordinates

  • out[out] Output arrays

    • 0 - surface force value

Returns:

An error code: 0 - success, otherwise - failure

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

Compute platens residual for linear elasticity with damage.

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

  • Q[in] Number of quadrature points

  • i[in] Index

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 2 - u (four components: 3 displacement components, 1 scalar damage field)

    • 3 - u_g gradient of u with respect to reference coordinates

  • out[out] Output arrays

    • 1 - stored vector

    • 2 - initializing v

  • dXdx[out] dXdx

  • sigma_degr[out] Degraded stress tensor

Returns:

An error code: 0 - success, otherwise - failure

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

Compute platens jacobian for linear elasticity with damage.

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

  • Q[in] Number of quadrature points

  • i[in] Index

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 2 - du (four components: 3 displacement components, 1 damage field)

    • 3 - du_g gradient of u with respect to reference coordinates

  • out[out] Output arrays

    • 0 - initializing dv

  • dXdx[out] dXdx

  • dsigma_degr[out] Linearization of degraded stress tensor

Returns:

An error code: 0 - success, otherwise - failure

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

Compute platen residual for linear elasticity+damage.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Evaluate platen Jacobian for linear elasticity+damage.

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

  • 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 RatelLinearElasticityParams

  • 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 RatelLinearElasticityParams

  • 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 RatelLinearElasticityParams

  • 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 RatelLinearElasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Compute strain energy for linear elasticity.

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

  • 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 RatelLinearElasticityParams

  • 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 SurfaceForceCellToFace_Linear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for linear elasticity.

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

  • 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 RatelMixedLinearElasticityParams

  • 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 = (bulk_primal * tr(e) - 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, const CeedScalar trace_e, CeedScalar *const *out, CeedScalar *g0)#

Compute g0 for mixed linear elasticity.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 2 - p

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

  • out[out] Output arrays, unused

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

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 RatelMixedLinearElasticityParams

  • 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, const CeedScalar trace_de, const CeedScalar Cinv_contract_dE, CeedScalar *const *out, CeedScalar *dg0)#

Compute linearization of g0 for mixed linear elasticity.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 2 - dp

  • 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

  • out[out] Output arrays, unused

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

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 RatelMixedLinearElasticityParams

  • 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 RatelMixedLinearElasticityParams

  • 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 RatelMixedLinearElasticityParams

  • 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 RatelMixedLinearElasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int StrainEnergy_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 RatelMixedLinearElasticityParams

  • 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 RatelMixedLinearElasticityParams

  • 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 SurfaceForceCellToFace_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 RatelMixedLinearElasticityParams

  • 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 ElasticityPC_uu_MixedLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute displacement block for pMG preconditioner for mixed linear elasticity.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - qdata

    • 1 - gradient of incremental change of u with respect to reference coordinates

  • out[out] Output arrays

    • 0 - action of QFunction for displacement field

Returns:

An error code: 0 - success, otherwise - failure

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

Compute pressure block for pMG preconditioner for mixed linear elasticity.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

    • 0 - qdata

    • 1 - incremental change of p

  • out[out] Output arrays

    • 0 - action of QFunction for pressure field

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_MixedNeoHookean(CeedScalar bulk_primal, CeedScalar two_mu, CeedScalar p, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for mixed neo-Hookean hyperelasticity.

tau = [bulk_primal * J dV/dJ - p J] I + 2 mu J^{-2/3} e_dev

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • two_mu[in] Two times the shear modulus

  • p[in] Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • J_pow[in] J^{-2/3}

  • 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 bulk_primal, CeedScalar two_mu, CeedScalar p, CeedScalar Jm1, 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 = S_iso + S_vol

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • two_mu[in] Two times the shear modulus

  • p[in] Pressure

  • 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_MixedNeoHookean_fwd(CeedScalar bulk_primal, CeedScalar mu, CeedScalar p, CeedScalar dp, 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], CeedScalar *Cinv_contract_dE)#

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

dS = dS_iso + dS_vol

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • mu[in] Shear modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • 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

  • Cinv_contract_dE[out] C_inv : dE

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTranspose_MixedNeoHookean(CeedScalar bulk_primal, CeedScalar mu, CeedScalar p, CeedScalar dp, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar grad_du[3][3], const CeedScalar e_sym[6], CeedScalar FdSFTranspose[3][3], CeedScalar *trace_depsilon)#

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

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • mu[in] Shear modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • J_pow[in] J^{-2/3}

  • 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

  • trace_depsilon[out] trace(depsilon)

Returns:

An error code: 0 - success, otherwise - failure

int RatelStrainEnergy_MixedNeoHookean(CeedScalar bulk, CeedScalar mu, CeedScalar Jm1, CeedScalar trace_strain, CeedScalar *strain_energy)#

Compute strain energy for mixed neo-Hookean model.

psi = 0.5 mu (I1_bar - 3) + bulk * V(J)

Parameters:
  • bulk[in] Bulk modulus

  • mu[in] Shear modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • trace_strain[in] Trace of Green Lagrange or Green euler strain tensor (E or e)

  • strain_energy[out] Strain energy for mixed Neo-Hookean model

Returns:

An error code: 0 - success, otherwise - failure

int StrainEnergy_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 RatelMixedNeoHookeanElasticityParams

  • 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 RatelMixedNeoHookeanElasticityParams

  • 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 SurfaceForceCellToFace_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 RatelMixedNeoHookeanElasticityParams

  • 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_MixedNeoHookeanCurrent(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 current configuration.

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

  • 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: dXdx, e, J - 1, J^{-2/3} and p

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

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

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 2 - p

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

  • out[out] Output arrays, unused

  • g0[out] g0 = -J dV/dJ - p * J / (bulk - bulk_primal)

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedNeoHookeanCurrent(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 *trace_depsilon)#

Compute linearization of f1 for mixed neo-Hookean hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - stored dXdx, e, J - 1, J^{-2/3} 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 = dtau - tau * grad_du^T

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

  • trace_depsilon[out] trace(depsilon) needed for computing dg0 function

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 1 - stored J and p

    • 3 - dp

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

  • trace_depsilon[in] trace(depsilon) computed in df1 function

  • out[out] Output arrays, unused

  • dg0[out] dg0 = ([-J^2 d2V/dJ2 - J dV/dJ - J*p/(bulk-bulk_primal)]trace(depsilon) - dp*J/(bulk-bulk_primal) )

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Compute displacement block for pMG preconditioner for mixed neo-Hookean hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

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

  • out[out] Output arrays 0 - action of QFunction for displacement field

Returns:

An error code: 0 - success, otherwise - failure

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

Compute pressure block for pMG preconditioner for mixed neo-Hookean hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - incremental change of p

  • out[out] Output arrays 0 - action of QFunction for pressure field

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 RatelMixedNeoHookeanElasticityParams

  • 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, const CeedScalar Jm1, CeedScalar *const *out, CeedScalar *g0)#

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 2 - p

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

  • out[out] Output arrays, unused

  • g0[out] g0 = -J dV/dJ - p * J / (bulk - bulk_primal)

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 RatelMixedNeoHookeanElasticityParams

  • 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, const CeedScalar Jm1, const CeedScalar Cinv_contract_dE, CeedScalar *const *out, CeedScalar *dg0)#

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 1 - stored gradient of u and p

    • 3 - dp

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

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

  • out[out] Output arrays, unused

  • dg0[out] dg0 = ([-J^2 d2V/dJ2 - J dV/dJ - J*p/(bulk-bulk_primal)](C_inv:dE) - dp*J/(bulk-bulk_primal) )

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 RatelMixedNeoHookeanElasticityParams

  • 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 RatelMixedNeoHookeanElasticityParams

  • 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 RatelMixedNeoHookeanElasticityParams

  • 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 RatelMixedNeoHookeanElasticityParams

  • 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 mixed neo-Hookean hyperelasticity in initial configuration.

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

  • 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 mixed neo-Hookean hyperelasticity in initial configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Compute displacement block for pMG preconditioner for mixed neo-Hookean hyperelasticity in initial configuration.

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

  • Q[in] Number of quadrature points

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

  • out[out] Output arrays 0 - action of QFunction for displacement field

Returns:

An error code: 0 - success, otherwise - failure

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

Compute pressure block for pMG preconditioner for mixed neo-Hookean hyperelasticity in initial configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - incremental change of p

  • out[out] Output arrays 0 - action of QFunction for pressure field

Returns:

An error code: 0 - success, otherwise - failure

int RatelKirchhoffTau_MixedNeoHookeanPL(CeedScalar bulk_primal, CeedScalar two_mu, CeedScalar p, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar e_sym[6], CeedScalar tau_sym[6])#

Compute Kirchoff tau for mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity.

tau = [bulk_primal * U - p ] * J dU/dJ * I + 2 mu J^{-2/3} e_dev

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • two_mu[in] Two times the shear modulus

  • p[in] Lagrange multiplier

  • Jm1[in] Determinant of deformation gradient - 1.

  • J_pow[in] J^{-2/3}

  • 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_MixedNeoHookeanPL(CeedScalar bulk_primal, CeedScalar two_mu, CeedScalar p, CeedScalar Jm1, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])#

Compute second Kirchoff stress for mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity.

S = S_vol + S_iso

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • two_mu[in] Two times the shear modulus

  • p[in] Lagrange multiplier

  • 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_MixedNeoHookeanPL_fwd(CeedScalar bulk_primal, CeedScalar mu, CeedScalar p, CeedScalar dp, 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], CeedScalar *Cinv_contract_dE)#

Compute derivative of second Kirchoff stress mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity.

dS = dS_iso + dS_vol

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • mu[in] Shear modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • 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

  • Cinv_contract_dE[out] C_inv : dE

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTranspose_MixedNeoHookeanPL(CeedScalar bulk_primal, CeedScalar mu, CeedScalar p, CeedScalar dp, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar grad_du[3][3], const CeedScalar e_sym[6], CeedScalar FdSFTranspose[3][3], CeedScalar *trace_depsilon)#

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

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • mu[in] Shear modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • J_pow[in] J^{-2/3}

  • 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

  • trace_depsilon[out] trace(depsilon)

Returns:

An error code: 0 - success, otherwise - failure

int RatelStrainEnergy_MixedNeoHookeanPL(CeedScalar bulk, CeedScalar bulk_primal, CeedScalar mu, CeedScalar p, CeedScalar Jm1, CeedScalar trace_strain, CeedScalar *mixed_energy)#

Compute mixed potential energy for mixed neo-Hookean model.

Pi(u,p) = 0.5 mu (I1_bar - 3) - p U + 0.5 * bulk_primal * U^2 - 0.5 p^2 / (bulk - bulk_primal)

Note that strain energy function is psi = 0.5 mu (I1_bar - 3) + bulk / 2 * U(J)^2

Parameters:
  • bulk[in] Bulk modulus

  • bulk_primal[in] Primal bulk modulus

  • mu[in] Shear modulus

  • p[in] Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • trace_strain[in] Trace of Green Lagrange or Green euler strain tensor (E or e)

  • mixed_energy[out] Energy for mixed Neo-Hookean model

Returns:

An error code: 0 - success, otherwise - failure

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

Compute strain energy for mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity.

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

  • 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_MixedNeoHookeanPL(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute projected diagnostic values for mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity.

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

  • 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 SurfaceForceCellToFace_MixedNeoHookeanPL(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity.

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

  • 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_MixedNeoHookeanPLCurrent(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 current configuration.

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

  • 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: dXdx, e, J - 1, J^{-2/3} and p

  • dXdx[out] Coordinate transformation

  • f1[out] f1 = tau

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

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 2 - p

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

  • out[out] Output arrays, unused

  • g0[out] g0 = (-U(J) - p/(bulk - bulk_primal) )

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedNeoHookeanPLCurrent(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 *trace_depsilon)#

Compute linearization of f1 for mixed neo-Hookean hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - stored dXdx, e, J - 1, J^{-2/3} 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 = dtau - tau * grad_du^T

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

  • trace_depsilon[out] trace(depsilon) needed for computing dg0 function

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 1 - stored J and p

    • 3 - dp

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

  • trace_depsilon[in] trace(depsilon) computed in df1 function

  • out[out] Output arrays, unused

  • dg0[out] dg0 = (dU(J) - dp/(bulk - bulk_primal))

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Compute displacement block for pMG preconditioner for mixed neo-Hookean hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

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

  • out[out] Output arrays 0 - action of QFunction for displacement field

Returns:

An error code: 0 - success, otherwise - failure

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

Compute pressure block for pMG preconditioner for mixed neo-Hookean hyperelasticity in current configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - incremental change of p

  • out[out] Output arrays 0 - action of QFunction for pressure field

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedNeoHookeanPLInitial(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 perturbed Lagrange-multiplier hyperelasticity in initial configuration.

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

  • 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 - Lagrange multiplier

  • 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_MixedNeoHookeanPLInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, const CeedScalar Jm1, CeedScalar *const *out, CeedScalar *g0)#

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays 2 - Lagrange multiplier

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

  • out[out] Output arrays, unused

  • g0[out] g0 = (U(J) - p/bulk )

Returns:

An error code: 0 - success, otherwise - failure

int df1_MixedNeoHookeanPLInitial(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 perturbed Lagrange-multiplier hyperelasticity in initial configuration.

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

  • 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_MixedNeoHookeanPLInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, const CeedScalar Jm1, const CeedScalar Cinv_contract_dE, CeedScalar *const *out, CeedScalar *dg0)#

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

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

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

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

  • out[out] Output arrays, unused

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

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

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

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int f1_MixedNeoHookeanPLInitial_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 perturbed Lagrange-multiplier hyperelasticity in initial configuration for platen BCs.

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

  • 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_MixedNeoHookeanPLInitial_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 perturbed Lagrange-multiplier hyperelasticity in initial configuration.

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

  • 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_MixedNeoHookeanPLInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute platen residual for neo-Hookean perturbed Lagrange-multiplier 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_MixedNeoHookeanPLInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Evaluate platen Jacobian for neo-Hookean perturbed Lagrange-multiplier 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 ElasticityPC_uu_MixedNeoHookeanPLInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute displacement block for pMG preconditioner for mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity in initial configuration.

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

  • Q[in] Number of quadrature points

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

  • out[out] Output arrays 0 - action of QFunction for displacement field

Returns:

An error code: 0 - success, otherwise - failure

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

Compute pressure block for pMG preconditioner for mixed neo-Hookean perturbed Lagrange-multiplier hyperelasticity in initial configuration.

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

  • Q[in] Number of quadrature points

  • in[in] Input arrays 0 - qdata 1 - incremental change of p

  • out[out] Output arrays 0 - action of QFunction for pressure field

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 StrainEnergy_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 RatelOgdenElasticityParams

  • 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 RatelOgdenElasticityParams

  • 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 SurfaceForceCellToFace_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 RatelOgdenElasticityParams

  • 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 RatelOgdenElasticityParams

  • 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, const CeedScalar Jm1, CeedScalar *const *out, CeedScalar *g0)#

Compute g0 for mixed Ogden hyperelasticity in initial configuration.

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 2 - p

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

  • out[out] Output arrays, unused

  • g0[out] g0 = (-(J^2 - 1) / (2J) - p/bulk ) * 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 RatelOgdenElasticityParams

  • 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, const CeedScalar Jm1, const CeedScalar Cinv_contract_dE, CeedScalar *const *out, CeedScalar *dg0)#

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

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

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 1 - stored gradient of u and p

    • 3 - dp

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

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

  • out[out] Output arrays, unused

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

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 RatelOgdenElasticityParams

  • 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 RatelOgdenElasticityParams

  • 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 RatelOgdenElasticityParams

  • 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 RatelOgdenElasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricKirchhoffTau_Mixed_PL(CeedScalar bulk_primal, CeedScalar Jm1, CeedScalar p, CeedScalar *tau_vol_sym)#

Compute volumetric Kirchoff tau for mixed perturbed Lagrange-multiplier hyperelasticity.

tau_vol = [bulk_primal * U - p ] * J dU/dJ * I

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • p[in] Pressure

  • tau_vol_sym[out] Volumetric Kirchoff tau

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricSecondKirchhoffStress_Mixed_PL(CeedScalar bulk_primal, CeedScalar p, CeedScalar Jm1, const CeedScalar C_inv_sym[6], CeedScalar S_vol_sym[6])#

Compute volumetric part of second Kirchoff stress for mixed with perturbed Lagrange-multiplier hyperelasticity.

S = [bulk_primal * U - p ] * J dU/dJ * C_inv

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • p[in] Lagrange multiplier

  • Jm1[in] Determinant of deformation gradient - 1.

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

  • S_vol_sym[out] Volumetric second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricSecondKirchhoffStress_Mixed_PL_fwd(CeedScalar bulk_primal, CeedScalar p, CeedScalar dp, CeedScalar Jm1, CeedScalar Cinv_contract_dE, const CeedScalar C_inv_sym[6], const CeedScalar dC_inv_sym[6], CeedScalar dS_vol_sym[6])#

Compute derivative of volumetric second Kirchoff stress mixed with perturbed Lagrange-multiplier hyperelasticity.

dS_vol = [(bulk_primal (J dU/dJ)^2 + (bulk_primal * U - p) * (J^2 * d2U/dJ2 + J dU/dJ)) C_inv:dE - dp * J dU/dJ] C_inv + [bulk_primal * U - p] J dU/dJ * dC_inv

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • Cinv_contract_dE[in] C_inv : dE

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

  • dC_inv_sym[in] Derivative of C^{-1}, in symmetric representation

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

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTransposeVolumetric_Mixed_PL(CeedScalar bulk_primal, CeedScalar p, CeedScalar dp, CeedScalar Jm1, CeedScalar trace_depsilon, const CeedScalar depsilon_sym[6], CeedScalar FdSFTranspose_vol_sym[6])#

Compute F*dS_vol*F^T for mixed with perturbed Lagrange-multiplier in current configuration.

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • trace_depsilon[in] trace(depsilon)

  • depsilon_sym[in] depsilon = (grad_du + grad_du^T)/2

  • FdSFTranspose_vol_sym[out] F*dS_vol*F^T needed for computing df1 in current configuration

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricKirchhoffTau_Mixed(CeedScalar bulk_primal, CeedScalar Jm1, CeedScalar p, CeedScalar *tau_vol_sym)#

Compute volumetric Kirchoff tau for mixed fields hyperelasticity.

tau_vol = [bulk_primal * J dV/dJ - p J] I

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • p[in] Pressure

  • tau_vol_sym[out] Volumetric Kirchoff tau

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricSecondKirchhoffStress_Mixed(CeedScalar bulk_primal, CeedScalar p, CeedScalar Jm1, const CeedScalar C_inv_sym[6], CeedScalar S_vol_sym[6])#

Compute volumetric part of second Kirchoff stress for mixed fields hyperelasticity.

S_vol = [bulk_primal * J dV/dJ - p J] * C_inv

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • p[in] Pressure

  • Jm1[in] Determinant of deformation gradient - 1

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

  • S_vol_sym[out] Volumetric second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricSecondKirchhoffStress_Mixed_fwd(CeedScalar bulk_primal, CeedScalar p, CeedScalar dp, CeedScalar Jm1, CeedScalar Cinv_contract_dE, const CeedScalar C_inv_sym[6], const CeedScalar dC_inv_sym[6], CeedScalar dS_vol_sym[6])#

Compute derivative of volumetric second Kirchoff stress for mixed fields hyperelasticity.

dS_vol = [(bulk_primal J^2 * d2V/dJ2 + (bulk_primal * J dV/dJ - p J)) (C_inv:dE) - dp J] C_inv + [bulk_primal * J dV/dJ - p J ] dC_inv

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • Cinv_contract_dE[in] C_inv : dE

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

  • dC_inv_sym[in] Derivative of C^{-1}, in symmetric representation

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

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTransposeVolumetric_Mixed(CeedScalar bulk_primal, CeedScalar p, CeedScalar dp, CeedScalar Jm1, CeedScalar trace_depsilon, const CeedScalar depsilon_sym[6], CeedScalar FdSFTranspose_vol_sym[6])#

Compute F*dS_vol*F^T for mixed fields hyperelasticity in current configuration.

Parameters:
  • bulk_primal[in] Primal bulk modulus

  • p[in] Pressure

  • dp[in] Increment of Pressure

  • Jm1[in] Determinant of deformation gradient - 1

  • trace_depsilon[in] trace(depsilon)

  • depsilon_sym[in] depsilon = (grad_du + grad_du^T)/2

  • FdSFTranspose_vol_sym[out] F*dS_vol*F^T needed for computing df1 in current configuration

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 StrainEnergy_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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 SurfaceForceCellToFace_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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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, e, and J - 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 RatelMooneyRivlinElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - stored dXdx, e, and J - 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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelMooneyRivlinElasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • 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 StrainEnergy_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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 SurfaceForceCellToFace_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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 J - 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 RatelNeoHookeanElasticityParams

  • Q[in] Number of quadrature points

  • i[in] Current quadrature point

  • in[in] Input arrays

    • 0 - volumetric qdata

    • 1 - stored dXdx, tau, and J - 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelNeoHookeanElasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

int VolumetricFunctionAndDerivatives(CeedScalar Jm1, CeedScalar *V, CeedScalar *J_dVdJ, CeedScalar *J2_d2VdJ2)#

Compute V, J * dV/dJ, J^2 * d^2V/dJ^2 for mixed/single fields hyperelasticity.

For isochoric single field and mixed methods we consider the volumetric energy of form \psi_vol = k * V

A = J^2 - 1 - 2 logJ V = A / 4 J dV/dJ = (J^2 - 1) / 2 J^2 d^2V/dJ^2 = (J^2 + 1) / 2

Parameters:
  • Jm1[in] Determinant of deformation gradient - 1.

  • V[out] V

  • J_dVdJ[out] J dV/dJ

  • J2_d2VdJ2[out] J^2 d^2V/dJ^2

Returns:

An error code: 0 - success, otherwise - failure

int VolumetricFunctionAndDerivatives_PL(CeedScalar Jm1, CeedScalar *U, CeedScalar *J_dUdJ, CeedScalar *J2_d2UdJ2)#

Compute U, J * dU/dJ, J^2 * d^2U/dJ^2 for mixed with perturbed Lagrange-multiplier hyperelasticity.

For mixed PL method we consider the volumetric energy of form \psi_vol = k/2 * U^2

A = J^2 - 1 - 2 logJ U = A^{1/2} / sqrt(2) J dU/dJ = (J^2 - 1) A^{-1/2} / sqrt(2) J^2 d^2U/dJ^2 = [(J^2 + 1) A^{-1/2} - (J^2 - 1)^2 A^{-3/2}] / sqrt(2)

Parameters:
  • Jm1[in] Determinant of deformation gradient - 1.

  • U[out] U

  • J_dUdJ[out] J dU/dJ

  • J2_d2UdJ2[out] J^2 d^2U/dJ^2

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricKirchhoffTau(CeedScalar bulk, CeedScalar Jm1, CeedScalar *tau_vol_sym)#

Compute volumetric Kirchoff tau for single field isochoric hyperelasticity.

tau_vol = [bulk * J dV/dJ] I

Parameters:
  • bulk[in] Bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • tau_vol_sym[out] Volumetric Kirchoff tau

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricSecondKirchhoffStress(CeedScalar bulk, CeedScalar Jm1, const CeedScalar C_inv_sym[6], CeedScalar S_vol_sym[6])#

Compute volumetric part of second Kirchoff stress for single field isochoric hyperelasticity.

S_vol = [bulk * J dV/dJ] * C_inv

Parameters:
  • bulk[in] Bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

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

  • S_vol_sym[out] Volumetric second Kirchoff stress, in symmetric representation

Returns:

An error code: 0 - success, otherwise - failure

int RatelVolumetricSecondKirchhoffStress_fwd(CeedScalar bulk, CeedScalar Jm1, CeedScalar Cinv_contract_dE, const CeedScalar C_inv_sym[6], const CeedScalar dC_inv_sym[6], CeedScalar dS_vol_sym[6])#

Compute derivative of volumetric second Kirchoff stress for single field isochoric hyperelasticity.

dS_vol = [(bulk J^2 * d2V/dJ2 + bulk * J dV/dJ (C_inv:dE)] C_inv + [bulk * J dV/dJ] dC_inv

Parameters:
  • bulk[in] Bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • Cinv_contract_dE[in] C_inv : dE

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

  • dC_inv_sym[in] Derivative of C^{-1}, in symmetric representation

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

Returns:

An error code: 0 - success, otherwise - failure

int RatelComputeFdSFTransposeVolumetric(CeedScalar bulk, CeedScalar Jm1, CeedScalar trace_depsilon, const CeedScalar depsilon_sym[6], CeedScalar FdSFTranspose_vol_sym[6])#

Compute F*dS_vol*F^T for for single field isochoric hyperelasticity in current configuration.

Parameters:
  • bulk[in] Bulk modulus

  • Jm1[in] Determinant of deformation gradient - 1

  • trace_depsilon[in] trace(depsilon)

  • depsilon_sym[in] depsilon = (grad_du + grad_du^T)/2

  • FdSFTranspose_vol_sym[out] F*dS_vol*F^T needed for computing df1 in current configuration

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 RatelElastoPlasticityParams

  • 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 RatelElastoPlasticityParams

  • 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 RatelElastoPlasticityParams

  • 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 RatelElastoPlasticityParams

  • 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 RatelBCPlatenParams

  • 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 RatelBCPlatenParams

  • Q[in] Number of quadrature points

  • in[in] Input arrays

  • out[out] Output arrays

Returns:

An error code: 0 - success, otherwise - failure

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

Compute strain energy for linear plasticity.

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

  • 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 RatelElastoPlasticityParams

  • 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 SurfaceForceCellToFace_PlasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)#

Compute surface forces for linear plasticity.

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

  • 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:
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:
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:
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:
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_ElasticityIsochoricMooneyRivlinCurrent(Ratel ratel, RatelMaterial material)#

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

Not collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

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

Register Isochoric Mooney-Rivlin hyperelasticity at finite strain in current 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_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:
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_ElasticityIsochoricNeoHookeanCurrent(Ratel ratel, RatelMaterial material)#

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

Not collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

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

Register Isochoric Neo-Hookean hyperelasticity at finite strain in current 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:
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_ElasticityIsochoricOgdenCurrent(Ratel ratel, RatelMaterial material)#

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

Not collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

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

Register IsochoricOgden hyperelasticity at finite strain in current 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:
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_ElasticityLinearDamage(Ratel ratel, RatelMaterial material)#

Create RatelMaterial for Damage Phase Field.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

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

Register damage model.

Parameters:
  • ratel[in] Ratel context

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

  • material_create_functions[out] PETSc function list for RatelMaterials

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:
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:
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_ElasticityMixedNeoHookeanCurrent(Ratel ratel, RatelMaterial material)#

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

Not collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

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

Register Mixed Neo-Hookean hyperelasticity at finite strain in current 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_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:
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_ElasticityMixedNeoHookeanPLCurrent(Ratel ratel, RatelMaterial material)#

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

Not collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

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

Register Mixed Neo-Hookean perturbed Lagrange-multiplier hyperelasticity at finite strain in current 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_ElasticityMixedNeoHookeanPLInitial(Ratel ratel, RatelMaterial material)#

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

Not collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

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

Register Mixed Neo-Hookean perturbed Lagrange-multiplier 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:
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:
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:
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:
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:
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:
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:
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_ElasticityDamage(RatelMaterial material, CeedScalar nu, CeedScalar E, CeedScalar rho, CeedScalar fracture_toughness, CeedScalar characteristic_length, CeedScalar residual_stiffness, CeedScalar damage_scaling, CeedScalar damage_viscosity, bool use_offdiagonal, bool use_AT1, bool use_hybrid, CeedQFunctionContext *ctx)#

Process command line options for Damage Phase Field params.

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

  • nu[in] Poisson’s ratio

  • E[in] Young’s Modulus

  • rho[in] Density for scaled mass matrix

  • fracture_toughness[in] Critical energy release rate (J/m^2)

  • characteristic_length[in] Length scale parameter

  • residual_stiffness[in] Residual stiffness parameter

  • damage_scaling[in] Scaling factor for damage residual

  • damage_viscosity[in] Viscosity for viscous regularization

  • use_offdiagonal[in] Switch for Jacobian offdiagonal terms

  • use_AT1[in] AT1 model type

  • use_hybrid[in] AT1 model type

  • ctx[out] libCEED QFunctionContext for Damage Phase Field parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsContextCreate_ElasticityDamage(RatelMaterial material, CeedQFunctionContext *ctx)#

Build libCEED QFunctionContext with damage phase field parameters.

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

  • ctx[out] libCEED QFunctionContext for damage phase field parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsSmootherDataSetup_ElasticityDamage(RatelMaterial material)#

Setup data for libCEED QFunctionContext for smoother with ELasticityDamage parameters.

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

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelCeedParamsContextCreate_MixedNeoHookean(RatelMaterial material, CeedScalar nu, CeedScalar E, CeedScalar rho, CeedScalar nu_primal, CeedScalar nu_primal_pc, CeedInt sign_pp, CeedQFunctionContext *ctx)#

Set CeedQFunctionContext data and register fields for mixed 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

  • nu_primal[in] To change full strain to deviatoric in mixed formulation

  • nu_primal_pc[in] To change full strain to deviatoric in uu block pc

  • sign_pp[in] To change the sign in pp block pc

  • ctx[out] CeedQFunctionContext for mixed Neo-Hookean parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialParamsContextCreate_MixedNeoHookean(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext with mixed 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_MixedNeoHookean(RatelMaterial material)#

Setup data for CeedQFunctionContext for smoother with mixed 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_MMS_CEED_BPs(RatelMaterial material, CeedScalar weierstrass_a, CeedScalar weierstrass_b, CeedInt weierstrass_n, CeedQFunctionContext *ctx)#

Set CeedQFunctionContext data and register fields for CEED BPs MMS parameters.

Not collective across MPI processes.

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

  • weierstrass_a[in] First Weierstrass parameter

  • weierstrass_b[in] Second Weierstrass parameter

  • weierstrass_n[in] Number of terms in Weierstrass series

  • ctx[out] CeedQFunctionContext for CEED BPs MMS parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMMSParamsContextCreate_CEED_BPs(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext for CEED BPs MMS parameters.

Collective across MPI processes.

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

  • ctx[out] CeedQFunctionContext for CEED BPs MMS parameters

Returns:

An error code: 0 - success, otherwise - failure

static PetscErrorCode RatelCeedParamsContextCreate_MMS_Elasticity_Linear(RatelMaterial material, CeedScalar A0, CeedScalar shift, CeedScalar scale, CeedQFunctionContext *ctx)#

Set CeedQFunctionContext data and register fields for linear elasticity MMS parameters.

Not collective across MPI processes.

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

  • A0[in] Shift parameter

  • shift[in] Sin shift parameter

  • scale[in] Sin scale parameter

  • ctx[out] CeedQFunctionContext for linear elasticity MMS parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMMSParamsContextCreate_Elasticity_Linear(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext for linear elasticity MMS parameters.

Collective across MPI processes.

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

  • ctx[out] CeedQFunctionContext for linear elasticity MMS parameters

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMMSParamsContextCreate_Elasticity_MixedLinear(RatelMaterial material, CeedQFunctionContext *ctx)#

Build CeedQFunctionContext for mixed linear elasticity MMS parameters.

Collective across MPI processes.

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

  • ctx[out] CeedQFunctionContext for mixed linear elasticity MMS parameters

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:
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:
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:
Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelSolutionDMSetup_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, const char **field_names, const char **component_names, 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

  • field_names[in] Names of fields in RatelMaterial

  • component_names[in] Names of components in RatelMaterial

  • 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 RatelMaterialSetupResidualSuboperators_FEM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_residual_ut, CeedOperator op_residual_utt)#

Setup Residual 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

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupJacobianSuboperator_FEM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_jacobian)#

Setup Jacobian CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[out] Composite residual u term CeedOperator

  • 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 RatelMaterialSetupJacobianBlockSuboperator_FEM(RatelMaterial material, DM dm, PetscInt field, CeedOperator op_jacobian_block)#

Setup Block Preconditioner CeedOperator for RatelMaterial.

Parameters:
  • material[in] RatelMaterial context

  • dm[in] DM for the given field

  • field[in] Field that we wan to apply pc

  • op_jacobian_block[out] CeedOperator created for the given field

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupStrainEnergySuboperator_FEM(RatelMaterial material, DM dm_energy, CeedOperator op_strain_energy)#

Setup strain energy CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_energy[in] DM for strain energy computation

  • op_strain_energy[out] Composite strain 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 RatelMaterialSetupSurfaceForceCellToFaceSuboperators_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 RatelMaterialSetupForcingSuboperator_FEM(RatelMaterial material, CeedOperator op_residual)#

Add forcing term to residual u term operator.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual[out] Composite residual u term CeedOperator to add RatelMaterial sub-operator

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(Ratel ratel, RatelModelData model_data, CeedQFunctionContext context, PetscViewer viewer)#

View material model parameters.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel object for error handling

  • model_data[in] RatelModelData to view

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

  • viewer[in] PetscViewer to print to

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

View material model parameters.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel object for error handling

  • 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:
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:
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:
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:
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:
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:
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:
Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetForcingType(RatelMaterial material, RatelForcingType *forcing_type)#

Get RatelForcingType for a RatelMaterial object.

Not collective across MPI processes.

Parameters:
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:
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:
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:
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, CeedOperator op_residual_u, 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

  • op_residual_u[in] Composite residual u term CeedOperator

  • 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 RatelMaterialGetStoredData(RatelMaterial material, CeedOperator op_residual_u, CeedElemRestriction *restriction, CeedVector *values)#

Get CeedElemRestriction and CeedVector objects corresponding to stored data from residual evaluation.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[in] Composite residual u term CeedOperator

  • restriction[out] CeedElemRestriction object corresponding to stored data from residual evaluation

  • values[out] CeedVector object corresponding to stored data from residual evaluation

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetStateData(RatelMaterial material, CeedOperator op_residual_u, CeedElemRestriction *restriction, CeedVector *values)#

Get CeedElemRestriction and CeedVector objects corresponding to state data from residual evaluation.

Not collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[in] Composite residual u term CeedOperator

  • restriction[out] CeedElemRestriction object corresponding to state data from residual evaluation

  • values[out] CeedVector object corresponding to state data from 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.

Uses the material SetupVolumeQData function to set up the QData.

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 RatelMaterialGetMeshVolumeQData(RatelMaterial material, CeedElemRestriction *restriction, CeedVector *q_data)#

Get CeedOperator volumetric QData for RatelMaterial.

Uses RatelMaterialGetVolumeQData_FEM to set up the QData.

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 RatelMaterialSetupResidualSuboperators(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_residual_ut, CeedOperator op_residual_utt)#

Setup residual 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

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupJacobianSuboperator(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_jacobian)#

Setup Jacobian CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[in] Composite residual u term CeedOperator

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

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupJacobianBlockSuboperator(RatelMaterial material, DM dm, PetscInt field, CeedOperator op_jacobian_block)#

Setup Block Preconditioner CeedOperator for RatelMaterial.

Parameters:
  • material[in] RatelMaterial context

  • dm[in] DM for the given field

  • field[in] Field that we wan to apply pc

  • op_jacobian_block[out] CeedOperator created for the given field

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetBoundaryJacobianMultigridInfo(RatelMaterial material, CeedOperator op_jacobian, PetscInt old_num_sub_operators, PetscInt new_num_sub_operators, RatelMaterialSetupMultigridLevelFunction setup_multigrid_level)#

Set Jacobian multiplicity skip indices, multigrid level function, and smoother indices for a boundary for a RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_jacobian[in] Jacobian CeedOperator

  • old_num_sub_operators[in] Number of suboperators in Jacobian CeedOperator before adding boundary suboperators

  • new_num_sub_operators[in] Number of suboperators in Jacobian CeedOperator after adding boundary suboperators

  • setup_multigrid_level[in] RatelMaterialSetupMultigridLevelFunction to use for setting up multigrid level for boundary suboperators

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 platen boundary condition 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.

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 RatelMaterialSetupStrainEnergySuboperator(RatelMaterial material, DM dm_energy, CeedOperator op_strain_energy)#

Setup strain energy CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • dm_energy[in] DM for strain energy computation

  • op_strain_energy[out] Composite strain 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

PetscErrorCode RatelModelParameterDataGetDefaultValue_Scalar(Ratel ratel, RatelModelParameterData params_data, const char *name, CeedScalar *value)#

Get the default scalar value from model parameter data.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • params_data[in] Model parameter data to check

  • name[in] Parameter name

  • value[out] Variable to store default scalar value

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelModelParameterDataGetDefaultValue_Int(Ratel ratel, RatelModelParameterData params_data, const char *name, CeedInt *value)#

Get the default int value from model parameter data.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • params_data[in] Model parameter data to check

  • name[in] Parameter name

  • value[out] Variable to store default int value

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelModelParameterDataGetDefaultValue_Bool(Ratel ratel, RatelModelParameterData params_data, const char *name, PetscBool *value)#

Get the default bool value from model parameter data.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • params_data[in] Model parameter data to check

  • name[in] Parameter name

  • value[out] Variable to store default int value

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelModelParameterDataRegisterContextFields(Ratel ratel, RatelModelParameterData parameters, CeedQFunctionContext ctx)#

Register model parameters as fields in a CeedQFunctionContext.

Not collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • parameters[in] Parameters to register

  • ctx[out] CeedQFunctionContext to register parameters in

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialCreate_MPM(Ratel ratel, RatelMaterial material)#

Create a RatelMaterial object for a material point method (MPM) model.

Collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMOptionsCreateFromOptions(Ratel ratel, RatelMPMOptions *options)#

Read options for a material point method (MPM) model from the command line.

Collective across MPI processes.

See also

RatelDMSetup_MPM(), RatelDMInitalizePointLocations_MPM()

Note

The caller is responsible for destroying options with PetscFree().

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialGetMPMContext(RatelMaterial material, RatelMPMContext *mpm)#

Get the RatelMPMContext for a RatelMaterial, creating it if necessary.

Collective across MPI processes.

Note

`mpm` is a borrowed reference and should not be destroyed by the caller.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMContextCreate(Ratel ratel, CeedVector x_ref_points, CeedElemRestriction restriction_x_points, RatelMPMContext *mpm)#

Create a RatelMPMContext object.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • x_ref_points[in] CeedVector holding reference coordinates

  • restriction_x_points[in] CeedElemRestriction for points

  • mpm[out] Created RatelMPMContext context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMContextDestroy(RatelMPMContext *mpm)#

Destroy a RatelMPMContext object.

Collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMContextGetPoints(RatelMPMContext mpm, CeedVector *x_ref_points)#

Get the reference coordinates for points in a RatelMPMContext.

Not collective across MPI processes.

Parameters:
  • mpm[in] RatelMPMContext context

  • x_ref_points[out] CeedVector holding reference coordinates

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMContextGetElemRestrictionPoints(RatelMPMContext mpm, CeedElemRestriction *restriction_x_points)#

Get the CeedElemRestriction for points in a RatelMPMContext.

Not collective across MPI processes.

Parameters:
  • mpm[in] RatelMPMContext context

  • restriction_x_points[out] CeedElemRestriction for points

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMContextGetNumPointsLocal(RatelMPMContext mpm, PetscInt *num_points_local)#

Get the number of points on this process.

Not collective across MPI processes.

Parameters:
  • mpm[in] RatelMPMContext context

  • num_points_local[out] Number of points on this process

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMContextCeedElemRestrictionCreateAtPoints(RatelMPMContext mpm, CeedInt num_comp, CeedElemRestriction *restriction)#

Create a CeedElemRestriction for a field at the points in a RatelMPMContext.

Collective across MPI processes.

Parameters:
  • mpm[in] RatelMPMContext context

  • num_comp[in] Number of components

  • restriction[out] CeedElemRestriction for QData

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMContextCeedOperatorSetPoints(RatelMPMContext mpm, CeedOperator op)#

Call CeedOperatorAtPointsSetPoints() for a CeedOperator using a RatelMPMContext.

Not collective across MPI processes.

Parameters:
  • mpm[in] RatelMPMContext context

  • op[in] CeedOperator to set points for

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupMeshToSwarmSuboperators_MPM(RatelMaterial material, CeedOperator op_mesh_to_swarm)#

Interpolate mesh field to material points, updating the DMSwarm with the result.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_mesh_to_swarm[in] Composite CeedOperator for mesh to swarm interpolation

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMMeshToSwarm(Ratel ratel, Vec U, PetscReal time)#

Interpolate mesh fields to material points, updating the DMSwarm with the result.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • U[in] Global mesh solution vector

  • time[in] Current time

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupSwarmToMeshSuboperators_MPM(RatelMaterial material, CeedOperator op_swarm_to_mesh, CeedOperator op_mass)#

Add material suboperators for swarm-to-mesh projection.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_swarm_to_mesh[inout] Composite CeedOperator for swarm to mesh projection

  • op_mass[inout] Composite CeedOperator for mass matrix

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMSwarmToMesh(Ratel ratel, Vec U)#

Project material point quantities to mesh fields.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • U[out] Global mesh solution vector

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMSetVolume(Ratel ratel)#

Set the volume of each material point in the DMSwarm.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelSolutionDMSetup_MPM(Ratel ratel, DM *dm_solution)#

Setup base (fine-grain) DMs, both DMSwarm and DMPlex, for a material point method (MPM) model.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • dm_solution[out] DM for the solution

PetscErrorCode RatelDMSetupByOrder_MPM(Ratel ratel, RatelMPMOptions mpm_options, CeedInt num_fields, const CeedInt *field_sizes, const char **field_names, DM dm)#

Setup DMSwarm with material points and point fields.

Parameters:
  • ratel[in] Ratel context

  • mpm_options[in] RatelMPMOptions context

  • num_fields[in] Number of fields in solution vector

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

  • field_names[in] Names of fields in RatelMaterial

  • dm[out] DM to setup

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialReset_MPM(RatelMaterial material)#

Reset material point operators and data.

Collective across MPI processes.

Parameters:
Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMPMMigrate(Ratel ratel, Vec U, PetscReal time)#

Project solution to points and migrate, then reset material point method (MPM) context and data.

Collective across MPI processes.

Parameters:
  • ratel[in] Ratel context

  • U[in] Global mesh solution vector

  • time[in] Current time

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupVolumeQData_MPM(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 RatelMaterialSetupResidualSuboperators_MPM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_residual_ut, CeedOperator op_residual_utt)#

Setup Residual 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

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupJacobianSuboperator_MPM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_jacobian)#

Setup Jacobian CeedOperator for RatelMaterial.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual_u[out] Composite residual u term CeedOperator

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

Returns:

An error code: 0 - success, otherwise - failure

PetscErrorCode RatelMaterialSetupMMSErrorSuboperator_MPM(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 RatelMaterialSetupForcingSuboperator_MPM(RatelMaterial material, CeedOperator op_residual)#

Add point-wise forcing term to residual u term operator.

Collective across MPI processes.

Parameters:
  • material[in] RatelMaterial context

  • op_residual[out] Composite residual u term CeedOperator to add RatelMaterial sub-operator

Returns:

An error code: 0 - success, otherwise - failure

RATEL_NUMBER_COMMON_PARAMETERS 3#

Number of common model parameters.

RATEL_COMMON_PARAMETER_RHO 0#

Index of common parameter rho

RATEL_COMMON_PARAMETER_SHIFT_V 1#

Index of common parameter shift_v.

RATEL_COMMON_PARAMETER_SHIFT_A 2#

Index of common parameter shift_a.

RATEL_MAX_FIELDS 16#

Maximum supported number of fields.

RATEL_MAX_MATERIAL_SIZE 128#

Maximum material context size.

Q_DATA_SURFACE_FORCE_GEOMETRY_SIZE 13#
Q_DATA_SURFACE_GEOMETRY_SIZE 4#
Q_DATA_VOLUMETRIC_SYMMETRIC_GEOMETRY_SIZE 7#
Q_DATA_VOLUMETRIC_GEOMETRY_SIZE 10#
NUM_COMPONENTS_DIAGNOSTIC_Dual 1#
NUM_COMPONENTS_DIAGNOSTIC_IsochoricMooneyRivlin 16#
FLOPS_Tau_IsochoricMooneyRivlin   (FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + 12 + FLOPS_MatMatMultSymmetric + 6 + 2 * FLOPS_MatMatAddSymmetric + 24 + \    FLOPS_MatMatContractSymmetric + 17)#
FLOPS_S_IsochoricMooneyRivlin   (FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + FLOPS_MatMatMultSymmetric + 3 + 12 + 2 * FLOPS_MatMatAddSymmetric + 20 + \    FLOPS_MatMatContractSymmetric + 11)#
FLOPS_dS_vol_IsochoricMooneyRivlin   (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + 8 + FLOPS_MatMatAddSymmetric + 12)#
FLOPS_dS1_iso_IsochoricMooneyRivlin   (2 * FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + FLOPS_MatMatMultSymmetric + 3 + 2 * FLOPS_MatMatAddSymmetric + 24 + 18)#
FLOPS_dS2_iso_IsochoricMooneyRivlin (24 + FLOPS_MatMatAddSymmetric + 12 + 5)#
FLOPS_dS3_iso_IsochoricMooneyRivlin (2 * FLOPS_MatMatContractSymmetric + FLOPS_MatMatAddSymmetric + 12 + 22)#
FLOPS_dS_iso_IsochoricMooneyRivlin   (FLOPS_dS1_iso_IsochoricMooneyRivlin + FLOPS_dS2_iso_IsochoricMooneyRivlin + FLOPS_dS3_iso_IsochoricMooneyRivlin + 18)#
FLOPS_dS_IsochoricMooneyRivlin (FLOPS_dS_vol_IsochoricMooneyRivlin + FLOPS_dS_iso_IsochoricMooneyRivlin + FLOPS_MatMatAddSymmetric)#
FLOPS_FdSFTranspose_IsochoricMooneyRivlin   (6 + 3 * FLOPS_MatTrace + 4 + 3 * FLOPS_ScalarMatMultSymmetric + 12 + 8 + FLOPS_MatDeviatoricSymmetric + 2 * FLOPS_MatMatContractSymmetric

+ 16 + \

12 +

FLOPS_MatMatMultSymmetric + FLOPS_MatMatMatMultSymmetric + FLOPS_GreenEulerStrain_fwd + 23 + 2 * FLOPS_MatMatMatAddSymmetric + 18 + 12 +    \    FLOPS_MatMatAddSymmetric)#
NUM_COMPONENTS_STATE_IsochoricMooneyRivlinCurrent 0#
NUM_COMPONENTS_STORED_IsochoricMooneyRivlinCurrent 17#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricMooneyRivlinCurrent 1#
FLOPS_df1_IsochoricMR_Current   (2 * FLOPS_MatMatMult + FLOPS_Tau_IsochoricMooneyRivlin + FLOPS_FdSFTranspose_IsochoricMooneyRivlin + FLOPS_MatMatAdd)#
FLOPS_JACOBIAN_IsochoricMooneyRivlinCurrent (FLOPS_df1_IsochoricMR_Current + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_STATE_IsochoricMooneyRivlinInitial 0#
NUM_COMPONENTS_STORED_IsochoricMooneyRivlinInitial 9#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricMooneyRivlinInitial 1#
FLOPS_df1_IsochoricMR_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_IsochoricMooneyRivlin + \    FLOPS_dS_IsochoricMooneyRivlin + FLOPS_MatMatMultPlusMatMatMult)#
FLOPS_JACOBIAN_IsochoricMooneyRivlinInitial (FLOPS_df1_IsochoricMR_Initial + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_DIAGNOSTIC_IsochoricNeoHookean 16#
FLOPS_Tau_IsochoricNeoHookean (FLOPS_Tau_vol + FLOPS_Tau_iso_NeoHookean + 3)#
FLOPS_S_IsochoricNeoHookean (FLOPS_S_iso_NeoHookean + FLOPS_S_vol)#
FLOPS_dS_IsochoricNeoHookean (1 + FLOPS_dS_vol + FLOPS_dS_iso_NeoHookean + FLOPS_MatMatMatAddSymmetric)#
FLOPS_FdSFTranspose_IsochoricNeoHookean (FLOPS_FdSFTranspose_iso_NeoHookean + FLOPS_FdSFTranspose_vol + FLOPS_MatMatAddSymmetric)#
NUM_COMPONENTS_STATE_IsochoricNeoHookeanCurrent 0#
NUM_COMPONENTS_STORED_IsochoricNeoHookeanCurrent 17#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricNeoHookeanCurrent 1#
FLOPS_df1_IsochoricNH_Current   (2 * FLOPS_MatMatMult + FLOPS_Tau_IsochoricNeoHookean + FLOPS_FdSFTranspose_IsochoricNeoHookean + FLOPS_MatMatAdd)#
FLOPS_JACOBIAN_IsochoricNeoHookeanCurrent (FLOPS_df1_IsochoricNH_Current + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_STATE_IsochoricNeoHookeanInitial 0#
NUM_COMPONENTS_STORED_IsochoricNeoHookeanInitial 9#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricNeoHookeanInitial 1#
FLOPS_df1_IsochoricNH_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_IsochoricNeoHookean + FLOPS_dS_IsochoricNeoHookean + \    FLOPS_MatMatMultPlusMatMatMult)#
FLOPS_JACOBIAN_IsochoricNeoHookeanInitial (FLOPS_df1_IsochoricNH_Initial + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_DIAGNOSTIC_IsochoricOgden 16#
FLOPS_Tau_IsochoricOgden (21 + 3 * FLOPS_Log1pSeries + 153 + FLOPS_EigenVectorOuterMult + 36)#
FLOPS_S_IsochoricOgden   (5 + FLOPS_ScalarMatMultSymmetric + 6 + FLOPS_MatComputeEigensystemSymmetric + FLOPS_PrincipalStretch + 3 * FLOPS_Log1pSeries + 6 + 153 + \    FLOPS_EigenVectorOuterMult + 42)#
FLOPS_dS_IsochoricOgden   (8 + FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + FLOPS_MatMatAddSymmetric + 12 +                   \    FLOPS_MatComputeEigensystemSymmetric + FLOPS_PrincipalStretch + FLOPS_PrincipalStretch_fwd + 3 * FLOPS_Log1pSeries + 9 + 153 + 189 + 162 + \    FLOPS_EigenVectorOuterMult + FLOPS_EigenVectorOuterMult_fwd + 105)#
FLOPS_FdSFTranspose_IsochoricOgden   (6 + FLOPS_MatTrace + 4 + FLOPS_ScalarMatMultSymmetric + 12 + 2 * FLOPS_MatMatMult + 9 + FLOPS_GreenEulerStrain_fwd + FLOPS_PrincipalStretch + \    FLOPS_PrincipalStretch_fwd + 3 * FLOPS_Log1pSeries + 9 + FLOPS_EigenVectorOuterMult + FLOPS_EigenVectorOuterMult_fwd + 3 * FLOPS_MatMatMult

+ \

3 *

FLOPS_MatMatMult + 3 * FLOPS_MatMatAdd + 3 * FLOPS_MatMatMatAddSymmetric + 21 + 153 + 189 + 171 + 126 + FLOPS_MatMatAddSymmetric)#
NUM_COMPONENTS_STATE_IsochoricOgdenCurrent 0#
NUM_COMPONENTS_STORED_IsochoricOgdenCurrent 31#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricOgdenCurrent 1#
FLOPS_df1_IsochoricOgden_Current   (2 * FLOPS_MatMatMult + FLOPS_VecVecCross + FLOPS_Tau_IsochoricOgden + FLOPS_FdSFTranspose_IsochoricOgden + FLOPS_MatMatAdd)#
FLOPS_JACOBIAN_IsochoricOgdenCurrent (FLOPS_df1_IsochoricOgden_Current + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_STATE_IsochoricOgdenInitial 0#
NUM_COMPONENTS_STORED_IsochoricOgdenInitial 9#
NUM_ACTIVE_FIELD_EVAL_MODES_IsochoricOgdenInitial 1#
FLOPS_df1_IsochoricOgden_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_IsochoricOgden + FLOPS_dS_IsochoricOgden + \    FLOPS_MatMatMultPlusMatMatMult)#
FLOPS_JACOBIAN_IsochoricOgdenInitial (FLOPS_df1_IsochoricOgden_Initial + FLOPS_dXdxwdetJ)#
FLOPS_J_pow 3#
FLOPS_Tau_iso_NeoHookean (FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + 12)#
FLOPS_S_iso_NeoHookean   (FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + FLOPS_MatMatMultSymmetric + FLOPS_J_pow + 2 + FLOPS_ScalarMatMultSymmetric)#
FLOPS_dS_iso_NeoHookean   (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + 2 * FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + \    FLOPS_MatMatMultSymmetric + 3 + 2 * FLOPS_MatMatAddSymmetric + 24 + FLOPS_J_pow + 7)#
FLOPS_FdSFTranspose_iso_NeoHookean   (6 + 3 * FLOPS_MatTrace + FLOPS_ScalarMatMultSymmetric + 9 + FLOPS_GreenEulerStrain_fwd + 6 + FLOPS_MatDeviatoricSymmetric + \    FLOPS_MatMatAddSymmetric + 15)#
NUM_COMPONENTS_DIAGNOSTIC_Elasticity_Damage 19#
NUM_COMPONENTS_STORED_Elasticity_Damage 9#
NUM_COMPONENTS_STATE_Elasticity_Damage 1#
NUM_ACTIVE_FIELD_EVAL_MODES_Elasticity_Damage 2#
FLOPS_JACOBIAN_Elasticity_Damage 257#
FLOPS_JACOBIAN_Elasticity_Damage_Platen 120#
NUM_COMPONENTS_STATE_Linear 0#
NUM_COMPONENTS_STORED_Linear 0#
NUM_ACTIVE_FIELD_EVAL_MODES_Linear 1#
NUM_COMPONENTS_DIAGNOSTIC_Linear 16#
FLOPS_df1_Linear (FLOPS_MatMatMult + FLOPS_LinearStrain_fwd + FLOPS_MatTrace + FLOPS_LinearStress_fwd)#
FLOPS_JACOBIAN_Linear (FLOPS_df1_Linear + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_STATE_MixedLinear 0#
NUM_COMPONENTS_STORED_MixedLinear 0#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear_u 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear_p 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear (NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear_u + NUM_ACTIVE_FIELD_EVAL_MODES_MixedLinear_p)#
NUM_COMPONENTS_DIAGNOSTIC_MixedLinear 16#
FLOPS_df1_MixedLinear   (FLOPS_MatMatMult + FLOPS_LinearStrain_fwd + FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + FLOPS_MixedLinearStress_fwd)#
FLOPS_JACOBIAN_MixedLinear (FLOPS_df1_MixedLinear + FLOPS_dXdxwdetJ + 3)#
FLOPS_JACOBIAN_Block_uu_MixedLinear   (FLOPS_MatMatMult + FLOPS_LinearStrain_fwd + FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + FLOPS_dXdxwdetJ + 1)#
FLOPS_JACOBIAN_Block_pp_MixedLinear (3)#
NUM_COMPONENTS_DIAGNOSTIC_MixedNeoHookean 16#
FLOPS_Tau_MixedNeoHookean (FLOPS_Tau_vol_mixed + FLOPS_Tau_iso_NeoHookean + 3)#
FLOPS_S_MixedNeoHookean (FLOPS_S_iso_NeoHookean + FLOPS_S_vol_mixed)#
FLOPS_dS_MixedNeoHookean (1 + FLOPS_dS_vol_mixed + FLOPS_dS_iso_NeoHookean + FLOPS_MatMatMatAddSymmetric)#
FLOPS_FdSFTranspose_MixedNeoHookean (FLOPS_FdSFTranspose_iso_NeoHookean + FLOPS_FdSFTranspose_vol_mixed + FLOPS_MatMatAddSymmetric)#
NUM_COMPONENTS_STATE_MixedNeoHookeanCurrent 0#
NUM_COMPONENTS_STORED_MixedNeoHookeanCurrent 18#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanCurrent_u 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanCurrent_p 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanCurrent   (NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanCurrent_u + NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanCurrent_p)#
FLOPS_df1_MixedNH_Current (2 * FLOPS_MatMatMult + FLOPS_Tau_MixedNeoHookean + FLOPS_FdSFTranspose_MixedNeoHookean + FLOPS_MatMatAdd)#
FLOPS_dg0_MixedNH_Current (FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + 10)#
FLOPS_JACOBIAN_MixedNeoHookeanCurrent (FLOPS_df1_MixedNH_Current + FLOPS_dXdxwdetJ + FLOPS_dg0_MixedNH_Current + 1)#
FLOPS_JACOBIAN_Block_uu_MixedNeoHookeanCurrent   (2 * FLOPS_MatMatMult + FLOPS_Tau_MixedNeoHookean + FLOPS_FdSFTranspose_MixedNeoHookean + FLOPS_MatMatAdd + FLOPS_dXdxwdetJ)#
FLOPS_JACOBIAN_Block_pp_MixedNeoHookeanCurrent 8#
NUM_COMPONENTS_STATE_MixedNeoHookeanInitial 0#
NUM_COMPONENTS_STORED_MixedNeoHookeanInitial 10#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial_u 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial_p 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial   (NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial_u + NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanInitial_p)#
FLOPS_df1_MixedNH_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_MixedNeoHookean + FLOPS_dS_MixedNeoHookean + \    FLOPS_MatMatMultPlusMatMatMult)#
FLOPS_dg0_MixedNH_Initial (FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + 10)#
FLOPS_JACOBIAN_MixedNeoHookeanInitial (FLOPS_df1_MixedNH_Initial + FLOPS_dXdxwdetJ + FLOPS_dg0_MixedNH_Initial + 1)#
FLOPS_JACOBIAN_Block_uu_MixedNeoHookeanInitial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_MixedNeoHookean + FLOPS_dS_MixedNeoHookean + \    FLOPS_MatMatMultPlusMatMatMult + FLOPS_dXdxwdetJ)#
FLOPS_JACOBIAN_Block_pp_MixedNeoHookeanInitial (FLOPS_MatDetAM1 + 8)#
NUM_COMPONENTS_DIAGNOSTIC_MixedNeoHookeanPL 16#
FLOPS_Tau_MixedNeoHookeanPL (FLOPS_Tau_vol_mixed_PL + FLOPS_Tau_iso_NeoHookean + 3)#
FLOPS_S_MixedNeoHookeanPL (FLOPS_S_iso_NeoHookean + FLOPS_S_vol_mixed_PL)#
FLOPS_dS_MixedNeoHookeanPL (1 + FLOPS_dS_vol_mixed_PL + FLOPS_dS_iso_NeoHookean + FLOPS_MatMatMatAddSymmetric)#
FLOPS_FdSFTranspose_MixedNeoHookeanPL (FLOPS_FdSFTranspose_iso_NeoHookean + FLOPS_FdSFTranspose_vol_mixed_PL + FLOPS_MatMatAddSymmetric)#
NUM_COMPONENTS_STATE_MixedNeoHookeanPLCurrent 0#
NUM_COMPONENTS_STORED_MixedNeoHookeanPLCurrent 18#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLCurrent_u 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLCurrent_p 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLCurrent   (NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLCurrent_u + NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLCurrent_p)#
FLOPS_df1_MixedNHPL_Current (2 * FLOPS_MatMatMult + FLOPS_Tau_MixedNeoHookeanPL + FLOPS_FdSFTranspose_MixedNeoHookeanPL + FLOPS_MatMatAdd)#
FLOPS_dg0_MixedNHPL_Current (FLOPS_J_dUdJ + 4)#
FLOPS_JACOBIAN_MixedNeoHookeanPLCurrent (FLOPS_df1_MixedNHPL_Current + FLOPS_dXdxwdetJ + FLOPS_dg0_MixedNHPL_Current + 1)#
FLOPS_JACOBIAN_Block_uu_MixedNeoHookeanPLCurrent   (2 * FLOPS_MatMatMult + FLOPS_Tau_MixedNeoHookeanPL + FLOPS_FdSFTranspose_MixedNeoHookeanPL + FLOPS_MatMatAdd + FLOPS_dXdxwdetJ)#
FLOPS_JACOBIAN_Block_pp_MixedNeoHookeanPLCurrent 7#
NUM_COMPONENTS_STATE_MixedNeoHookeanPLInitial 0#
NUM_COMPONENTS_STORED_MixedNeoHookeanPLInitial 10#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLInitial_u 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLInitial_p 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLInitial   (NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLInitial_u + NUM_ACTIVE_FIELD_EVAL_MODES_MixedNeoHookeanPLInitial_p)#
FLOPS_df1_MixedNHPL_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_MixedNeoHookeanPL + FLOPS_dS_MixedNeoHookeanPL + \    FLOPS_MatMatMultPlusMatMatMult)#
FLOPS_dg0_MixedNHPL_Initial (FLOPS_Log1pSeries + 14)#
FLOPS_JACOBIAN_MixedNeoHookeanPLInitial (FLOPS_df1_MixedNHPL_Initial + FLOPS_dXdxwdetJ + FLOPS_dg0_MixedNHPL_Initial)#
FLOPS_JACOBIAN_Block_uu_MixedNeoHookeanPLInitial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_MixedNeoHookeanPL + FLOPS_dS_MixedNeoHookeanPL + \    FLOPS_MatMatMultPlusMatMatMult + FLOPS_dXdxwdetJ)#
FLOPS_JACOBIAN_Block_pp_MixedNeoHookeanPLInitial (7)#
NUM_COMPONENTS_DIAGNOSTIC_MixedOgden 16#
FLOPS_Tau_MixedOgden (FLOPS_MatComputeEigensystemSymmetric + 3 * FLOPS_Log1pSeries + FLOPS_EigenVectorOuterMult + 9 + 6 + 117 + 36)#
FLOPS_S_MixedOgden   (FLOPS_MatComputeEigensystemSymmetric + FLOPS_PrincipalStretch + 3 * FLOPS_Log1pSeries + FLOPS_EigenVectorOuterMult + 12 + 6 + 117 + 42)#
FLOPS_dS_vol_MixedOgden   (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + 3 + FLOPS_MatMatAddSymmetric + 12)#
FLOPS_dS_iso_MixedOgden   (FLOPS_MatComputeEigensystemSymmetric + FLOPS_PrincipalStretch + FLOPS_PrincipalStretch_fwd + 3 * FLOPS_Log1pSeries + FLOPS_EigenVectorOuterMult + \    FLOPS_EigenVectorOuterMult_fwd + 9 + 2 * 117 + 144 + 108)#
FLOPS_dS_MixedOgden (FLOPS_dS_vol_MixedOgden + FLOPS_dS_iso_MixedOgden)#
NUM_COMPONENTS_STATE_MixedOgdenInitial 0#
NUM_COMPONENTS_STORED_MixedOgdenInitial 10#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial_u 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial_p 1#
NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial   (NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial_u + NUM_ACTIVE_FIELD_EVAL_MODES_MixedOgdenInitial_p)#
FLOPS_df1_MixedOgden_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenLagrangeStrain + FLOPS_CInverse + FLOPS_S_MixedOgden + FLOPS_dS_MixedOgden + \    FLOPS_MatMatMultPlusMatMatMult + FLOPS_MatMatMult + 10 + FLOPS_MatMatAdd)#
FLOPS_JACOBIAN_MixedOgdenInitial (FLOPS_df1_MixedOgden_Initial + FLOPS_dXdxwdetJ + 9)#
FLOPS_Tau_vol_mixed_PL (FLOPS_U + FLOPS_J_dUdJ + 3)#
FLOPS_S_vol_mixed_PL (FLOPS_U + FLOPS_J_dUdJ + 3 + FLOPS_ScalarMatMultSymmetric)#
FLOPS_dS_vol_mixed_PL (FLOPS_U + FLOPS_J_dUdJ + FLOPS_J2_d2UdJ2 + 13 + FLOPS_MatMatAddSymmetric + 12)#
FLOPS_FdSFTranspose_vol_mixed_PL (FLOPS_U + FLOPS_J_dUdJ + FLOPS_J2_d2UdJ2 + 13 + FLOPS_ScalarMatMultSymmetric + 4)#
FLOPS_Tau_vol_mixed (FLOPS_J_dVdJ + 4)#
FLOPS_S_vol_mixed (FLOPS_J_dVdJ + 4 + FLOPS_ScalarMatMultSymmetric)#
FLOPS_dS_vol_mixed (FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + 12 + FLOPS_MatMatAddSymmetric + 12)#
FLOPS_FdSFTranspose_vol_mixed (FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + 12 + FLOPS_ScalarMatMultSymmetric + 4)#
NUM_COMPONENTS_DIAGNOSTIC_MooneyRivlin 16#
FLOPS_Tau_MooneyRivlin (FLOPS_MatTrace + 12 + FLOPS_MatMatMultSymmetric + 2 * FLOPS_MatMatAddSymmetric + 24 + 9)#
FLOPS_S_MooneyRivlin (FLOPS_MatMatMultSymmetric + 6 + 2 * FLOPS_MatMatAddSymmetric + 12 + 5 + 6)#
FLOPS_dS_MooneyRivlin   (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + 10 + 2 * FLOPS_MatMatAddSymmetric + 12 + 5 + 6)#
FLOPS_FdSFTranspose_MooneyRivlin   (6 + 2 * FLOPS_MatTrace + 8 + 9 + FLOPS_MatMatMatMultSymmetric + FLOPS_GreenEulerStrain_fwd + FLOPS_MatMatMatAddSymmetric + 19 + 12)#
NUM_COMPONENTS_STATE_MooneyRivlinCurrent 0#
NUM_COMPONENTS_STORED_MooneyRivlinCurrent 16#
NUM_ACTIVE_FIELD_EVAL_MODES_MooneyRivlinCurrent 1#
FLOPS_df1_MR_Current (2 * FLOPS_MatMatMult + FLOPS_Tau_MooneyRivlin + FLOPS_FdSFTranspose_MooneyRivlin + FLOPS_MatMatAdd)#
FLOPS_JACOBIAN_MooneyRivlinCurrent (FLOPS_df1_MR_Current + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_STATE_MooneyRivlinInitial 0#
NUM_COMPONENTS_STORED_MooneyRivlinInitial 9#
NUM_ACTIVE_FIELD_EVAL_MODES_MooneyRivlinInitial 1#
FLOPS_df1_MR_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_MooneyRivlin + FLOPS_dS_MooneyRivlin + \    FLOPS_MatMatMultPlusMatMatMult)#
FLOPS_JACOBIAN_MooneyRivlinInitial (FLOPS_df1_MR_Initial + FLOPS_dXdxwdetJ)#
NUM_COMPONENTS_DIAGNOSTIC_NeoHookean 16#
FLOPS_Tau_NeoHookean 13#
FLOPS_S_NeoHookean (FLOPS_MatMatMultSymmetric + 4 + FLOPS_MatMatAddSymmetric + 12)#
FLOPS_dS_NeoHookean (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + 9 + FLOPS_MatMatAddSymmetric + 12)#
FLOPS_FdSFTranspose_NeoHookean (6 + FLOPS_MatTrace + 7 + FLOPS_ScalarMatMultSymmetric + 12)#
NUM_COMPONENTS_STATE_NeoHookeanCurrent_AD 0#
NUM_COMPONENTS_STORED_NeoHookeanCurrent_AD 15#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanCurrent_AD 1#
NUM_COMPONENTS_STATE_NeoHookeanCurrent 0#
NUM_COMPONENTS_STORED_NeoHookeanCurrent 16#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanCurrent 1#
FLOPS_df1_NH_Current (2 * FLOPS_MatMatMult + FLOPS_FdSFTranspose_NeoHookean + FLOPS_MatMatAdd)#
FLOPS_JACOBIAN_NeoHookeanCurrent (FLOPS_df1_NH_Current + FLOPS_dXdxwdetJ)#
RATEL_ELASTICITY_NEO_HOOKEAN_INITIAL_AD_TAPE_SIZE 6#
NUM_COMPONENTS_STATE_NeoHookeanInitial_AD 0#
NUM_COMPONENTS_STORED_NeoHookeanInitial_AD (15 + RATEL_ELASTICITY_NEO_HOOKEAN_INITIAL_AD_TAPE_SIZE)#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanInitial_AD 1#
NUM_COMPONENTS_STATE_NeoHookeanInitial 0#
NUM_COMPONENTS_STORED_NeoHookeanInitial 9#
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookeanInitial 1#
FLOPS_df1_NH_Initial   (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_NeoHookean + FLOPS_dS_NeoHookean + \    FLOPS_MatMatMultPlusMatMatMult)#
FLOPS_JACOBIAN_NeoHookeanInitial (FLOPS_df1_NH_Initial + FLOPS_dXdxwdetJ)#
FLOPS_V (FLOPS_Log1pSeries + 5)#
FLOPS_J_dVdJ 3#
FLOPS_J2_d2VdJ2 4#
FLOPS_U (FLOPS_Log1pSeries + 4 + 5)#
FLOPS_J_dUdJ (FLOPS_Log1pSeries + 4 + 7)#
FLOPS_J2_d2UdJ2 (FLOPS_Log1pSeries + 4 + 18)#
FLOPS_Tau_vol (FLOPS_J_dVdJ + 1)#
FLOPS_S_vol (FLOPS_J_dVdJ + 1 + FLOPS_ScalarMatMultSymmetric)#
FLOPS_dS_vol (FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + 5 + FLOPS_MatMatAddSymmetric + 12)#
FLOPS_FdSFTranspose_vol (FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + 5 + FLOPS_ScalarMatMultSymmetric + 4)#
NUM_COMPONENTS_STATE_PlasticityLinear 7#
NUM_COMPONENTS_STORED_PlasticityLinear 12#
NUM_ACTIVE_FIELD_EVAL_MODES_PlasticityLinear 1#
NUM_COMPONENTS_DIAGNOSTIC_PlasticityLinear 23#
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?

RatelDefaultParameterValue default_value#

Default value.

CeedSize offset#

Offset into context.

CeedInt num_components#

Number of components.

CeedContextFieldType type#

Type of parameter.

struct RatelElasticityDamageParams#
#include <elasticity-damage.h>

Elastic+damage model data.

Public Members

CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#

Common properties.

CeedScalar nu#

Poisson’s ratio.

CeedScalar E#

Young’s Modulus.

CeedScalar fracture_toughness#

Critical energy release rate.

CeedScalar characteristic_length#

Length-scale parameter.

CeedScalar residual_stiffness#

Residual stiffness parameter.

CeedScalar damage_scaling#

Scaling factor for damage residual.

CeedScalar damage_viscosity#

Damage viscosity.

bool use_offdiagonal#

Flag for switching on/off offdiagonal terms of the Jacobian.

bool use_AT1#

AT1 model type (true-AT1, false AT2, should be changed to char)

bool use_hybrid#

If true, hybrid model by Ambati et al.

CeedScalar mu#

Second Lame parameter (shear modulus)

CeedScalar bulk#

bulk modulus

CeedScalar dt#

time step

struct RatelLinearElasticityParams#
#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.

CeedScalar lambda#

First Lame parameter.

CeedScalar mu#

Second Lame parameter (shear modulus)

CeedScalar two_mu#

Second Lame parameter multiplied by 2.

CeedScalar bulk#

bulk modulus

struct RatelMixedLinearElasticityParams#
#include <elasticity-mixed-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.

CeedScalar nu_primal#

To change full strain to deviatoric in mixed formulation.

CeedScalar nu_primal_pc#

To change full strain to deviatoric in uu block pc.

CeedInt sign_pp#

To change the sign in pp block pc.

CeedScalar lambda#

First Lame parameter.

CeedScalar mu#

Second Lame parameter (shear modulus)

CeedScalar two_mu#

Second Lame parameter multiplied by 2.

CeedScalar bulk#

Bulk modulus.

CeedScalar bulk_primal#

Primal bulk modulus.

CeedScalar bulk_primal_pc#

Primal bulk modulus for block pc.

struct RatelMMSCEEDBPsParams#
#include <mms-ceed-bps.h>

CEED BPs MMS parameters.

Public Members

CeedScalar weierstrass_a#

First Weierstrass parameter.

CeedScalar weierstrass_b#

Second Weierstrass parameter.

CeedInt weierstrass_n#

Number of terms in Weierstrass series.

CeedScalar time#

Current solver time.

struct RatelMMSLinearElasticityParams#
#include <mms-elasticity-linear.h>

Linear elasticity MMS parameters.

Public Members

CeedScalar A0#

Solution scaling factor.

CeedScalar shift#

Sin shift factor.

CeedScalar scale#

Sin scaling factor.

CeedScalar time#

Current solver time.

CeedScalar material[RATEL_MAX_MATERIAL_SIZE]#

Material data.

struct RatelMooneyRivlinElasticityParams#
#include <mooney-rivlin.h>

Mooney-Rivlin model data.

Public Members

CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#

Common properties.

CeedScalar mu_1#

First Mooney-Rivlin property.

CeedScalar mu_2#

Second Mooney-Rivlin property.

CeedScalar nu#

Poisson’s ratio.

CeedScalar lambda#

First Lame parameter.

CeedScalar mu#

Second Lame parameter (shear modulus)

CeedScalar two_mu_2#

Second Mooney-Rivlin property multiplied by 2.

CeedScalar bulk#

bulk modulus

struct RatelOgdenElasticityParams#
#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 lambda#

First Lame parameter.

CeedScalar mu#

Second Lame parameter (shear modulus)

CeedInt num_ogden_parameters#

Number of Ogden’s parameters.

CeedScalar bulk#

bulk modulus

struct RatelLinearPlasticityParams#
#include <plasticity-linear.h>

Plasticity model data.

Public Members

CeedScalar yield_stress#

Poisson’s ratio.

CeedScalar hardening_A#

Young’s modulus.

struct RatelElastoPlasticityParams#
#include <plasticity-linear.h>

Plasticity model data.

Public Members

CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#

Common properties.

RatelLinearElasticityParams elasticity_params#

Elastic model parameters.

RatelLinearPlasticityParams plasticity_params#

Plastic model parameters.

struct RatelBoundingBoxParamsRestrictionContext#
#include <bounding-box.h>
struct RatelModelParameterData#
#include <ratel-impl.h>

Material model parameter information for printing.

struct RatelModelData#
#include <ratel-impl.h>

Material model data.

struct RatelMaterial#
#include <ratel-impl.h>

Material region.

struct RatelNeoHookeanElasticityParams#
#include <mixed-neo-hookean.h>

Neo-Hookean model data.

struct RatelMMSMixedLinearElasticityParams#
#include <mms-elasticity-mixed-linear.h>

Mixed linear elasticity MMS parameters.

struct RatelMPMContext#
#include <ratel.h>

Ratel context for MPM, stores points CeedElemRestriction for a material region.