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 byx
. 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 ofdxdX_{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
andN
- 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 byx
. 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 ofdxdX_{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
, andN
- 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 byx
. 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 ofdxdX_{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
andN
- 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 byx
. Change of coordinate matrix is given bydxdX_{i,j} = x_{i,j} (indicial notation)
. Inverse of change of coordinate matrix is given bydXdx_{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 storew 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
anddXdx_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 byx
. Change of coordinate matrix is given bydxdX_{i,j} = x_{i,j} (indicial notation)
. Inverse of change of coordinate matrix is given bydXdx_{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
anddXdx
- 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 displacementoutput_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 elasticityout – [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 functionout – [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 functionout – [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 functionout – [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 functionout – [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 functionout – [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.
- 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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_CEED_BP1(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register CEED BP1 model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_CEED_BP2(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for CEED BP2.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_CEED_BP2(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register CEED BP2 model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_CEED_BP3(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for CEED BP3.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_CEED_BP3(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register CEED BP3 model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_CEED_BP4(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for CEED BP4.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_CEED_BP4(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register CEED BP4 model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityIsochoricMooneyRivlinInitial(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Isochoric Mooney-Rivlin hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityIsochoricMooneyRivlinInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Isochoric Mooney-Rivlin hyperelasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityIsochoricNeoHookeanInitial(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Isochoric Neo-Hookean hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityIsochoricNeoHookeanInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Isochoric Neo-Hookean hyperelasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityIsochoricOgdenInitial(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for IsochoricOgden hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityIsochoricOgdenInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register IsochoricOgden hyperelasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_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:
ratel – [in] Ratel context
material – [out] RatelMaterial context
- 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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityLinear(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register linear elastic model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityMixedLinear(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for linear elasticity.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityMixedLinear(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register mixed linear elastic model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityMixedNeoHookeanInitial(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for mixed Neo-Hookean hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityMixedNeoHookeanInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Mixed Neo-Hookean hyperelasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
contextcl_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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityMixedOgdenInitial(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for mixed Ogden hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityMixedOgdenInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Mixed Ogden hyperelasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityMooneyRivlinCurrent(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Mooney-Rivlin hyperelasticity at finite strain in current configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityMooneyRivlinCurrent(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Mooney-Rivlin hyperelasticity at finite strain in current configuration.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityMooneyRivlinInitial(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Mooney-Rivlin hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityMooneyRivlinInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Mooney-Rivlin hyperelasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanCurrentAD(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Neo-Hookean hyperelasticity at finite strain in current configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanCurrentAD(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Neo-Hookean hyperelasticity at finite strain in current configuration using Enzyme-AD model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanCurrent(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Neo-Hookean hyperelasticity at finite strain in curent configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanCurrent(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Neo-Hookean hyperelasticity at finite strain in curent configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
static PetscErrorCode RatelCheckTapeSize_ElasticityNeoHookeanInitialAD(Ratel ratel)#
Helper function to check allocated Enzyme tape size.
- Parameters:
ratel – [in] Ratel context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanInitialAD(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Neo-Hookean hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanInitialAD(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Neo-Hookean hyperelasticity at finite strain in initial configuration using Enzyme-AD model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanInitial(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for Neo-Hookean hyperelasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_ElasticityNeoHookeanInitial(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register Neo-Hookean hyperelasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_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 contextnu – [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 contextctx – [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 contextweierstrass_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 contextctx – [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 contextA0 – [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 contextctx – [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 contextctx – [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 contextnu – [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 contextctx – [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 contextnu – [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 contextctx – [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 contextnu – [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 contextctx – [out]
CeedQFunctionContext
for Ogden parameters
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialParamsSmootherDataSetup_Ogden(RatelMaterial material)#
Setup data for
CeedQFunctionContext
for smoother with Ogden parameters.Collective across MPI processes.
- Parameters:
material – [inout]
RatelMaterial
to setup params context
- Returns:
An error code: 0 - success, otherwise - failure
-
static PetscErrorCode RatelCeedParamsContextCreate_PlasticityLinear(RatelMaterial material, CeedScalar hardening_A, CeedScalar yield_stress, CeedQFunctionContext *ctx)#
Set
CeedQFunctionContext
data and register fields for linear plasticity parameters.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
to setup model params contexthardening_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 contextctx – [out]
CeedQFunctionContext
for linear plasticity parameters
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialParamsSmootherDataSetup_PlasticityLinear(RatelMaterial material)#
Setup data for
CeedQFunctionContext
for smoother with linear plasticity parameters.Collective across MPI processes.
- Parameters:
material – [inout]
RatelMaterial
to setup model params context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_PlasticityLinear(Ratel ratel, RatelMaterial material)#
Create
RatelMaterial
model data for linear plasticity at finite strain in initial configuration.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelRegisterModel_PlasticityLinear(Ratel ratel, const char *cl_argument, PetscFunctionList *material_create_functions)#
Register linear plasticity at finite strain in initial configuration model.
Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextcl_argument – [in] Command line argument to use for model
material_create_functions – [out] PETSc function list for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreate_FEM(Ratel ratel, RatelMaterial material)#
Create a
RatelMaterial
object for a finite element model.- Parameters:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
contextdm_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
contextdm_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
contextdm_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
contextdm_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
contextsetup_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 defaultsetup_coords – [in] Flag to setup coordinate spaces
q_extra – [in] Additional quadrature order, or
RATEL_DECIDE
for defaultnum_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 forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextlabel_name – [in]
DMPlex
label name for volumelabel_value – [in]
DMPlex
label value for volumerestriction – [out]
CeedElemRestriction
for QDataq_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 forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm – [in]
DMPlex
gridlabel_name – [in]
DMPlex
label name for surfacelabel_value – [in]
DMPlex
label value for surfacerestriction – [out]
CeedElemRestriction
for QDataq_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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [out] Composite residual u term
CeedOperator
to addRatelMaterial
suboperatorop_residual_ut – [out] Composite residual u_t term
CeedOperator
to addRatelMaterial
suboperatorop_residual_utt – [out] Composite residual u_tt term
CeedOperator
to addRatelMaterial
suboperator
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupJacobianSuboperator_FEM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_jacobian)#
Setup Jacobian
CeedOperator
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [out] Composite residual u term
CeedOperator
op_jacobian – [out] Composite Jacobian
CeedOperator
to addRatelMaterial
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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_level – [in]
DMPlex
for multigrid level to setupm_loc – [in]
CeedVector
holding multiplicitysub_op_jacobian_fine – [in] Fine grid Jacobian
CeedOperator
op_jacobian_coarse – [inout] Composite Jacobian
CeedOperator
to addRatelMaterial
suboperatorsop_prolong – [inout] Composite prolongation
CeedOperator
to addRatelMaterial
suboperatorsop_restrict – [inout] Composite restriction
CeedOperator
to addRatelMaterial
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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_energy – [in]
DM
for strain energy computationop_strain_energy – [out] Composite strain energy
CeedOperator
to addRatelMaterial
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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_projected_diagnostic – [in]
DM
for projected diagnostic value computationdm_dual_diagnostic – [in]
DM
for dual space diagnostic value computationop_mass_diagnostic – [out] Composite diagnostic value projection
CeedOperator
to addRatelMaterial
suboperatorop_projected_diagnostic – [out] Composite projected diagnostic value
CeedOperator
to addRatelMaterial
suboperatorop_dual_diagnostic – [out] Composite dual space diagnostic value
CeedOperator
to addRatelMaterial
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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_surface_force – [in]
DM
for surface force computationops_surface_force – [out] Array of composite surface force
CeedOperator
to addRatelMaterial
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
forRatelMaterial
- Parameters:
material – [in]
RatelMaterial
contextdm_surface_displacement – [in]
DM
for surface displacement computationops_surface_centroid – [out] Composite surface centroid
CeedOperators
to addRatelMaterial
suboperator
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupMMSErrorSuboperator_FEM(RatelMaterial material, CeedOperator op_mms_error)#
Setup MMS error
CeedOperator
forRatelMaterial
- Parameters:
material – [in]
RatelMaterial
contextop_mms_error – [out] Composite MMS error
CeedOperator
to addRatelMaterial
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
contextop_residual – [out] Composite residual u term
CeedOperator
to addRatelMaterial
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
contextmaterial_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 viewviewer – [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 handlingmodel_data – [in]
RatelModelData
to viewcontext – [in] Initialized
CeedQFunctionContext
with parameter values, orNULL
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 handlingparam_data – [in]
RatelModelParameterData
to viewcontext – [in] Initialized
CeedQFunctionContext
with parameter values, orNULL
viewer – [in]
PetscViewer
to print to
-
PetscErrorCode RatelMaterialDestroy(RatelMaterial *material)#
Destroy a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [inout]
RatelMaterial
to destroy
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetActiveFieldSizes(RatelMaterial material, CeedInt *num_active_fields, const CeedInt **active_field_sizes)#
Get number of components for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextnum_active_fields – [out] Number of components in
RatelMaterial
active_field_sizes – [out] Number of components in
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetNumDiagnosticComponents(RatelMaterial material, CeedInt *num_components_projected, CeedInt *num_components_dual)#
Get number of diagnostic components for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextnum_components_projected – [out] Number of projected diagnostic components in
RatelMaterial
num_components_dual – [out] Number of dual space diagnostic components in
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetNumStateComponents(RatelMaterial material, CeedInt *num_comp_state)#
Get number of state components for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextnum_comp_state – [out] Number of state fields in
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetActiveFieldNames(RatelMaterial material, const char ***active_field_names, const char ***active_component_names)#
Get active field names for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextactive_field_names – [out] Names of fields in
RatelMaterial
active_component_names – [out] Names of components in
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetDiagnosticComponentNames(RatelMaterial material, const char ***projected_component_names, const char ***dual_component_names)#
Get diagnostic component names for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextprojected_component_names – [out] Names of projected diagnostic component in
RatelMaterial
dual_component_names – [out] Names of dual space diagnostic component in
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetVolumeLabelName(RatelMaterial material, const char **label_name)#
Get volume label name for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextlabel_name – [out] Volume label name for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetVolumeLabelValues(RatelMaterial material, PetscInt *num_label_values, PetscInt **label_values)#
Get volume label values for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextnum_label_values – [out] Number of label values for
RatelMaterial
label_values – [out] Volume label values for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetVolumeLabelValue(RatelMaterial material, PetscInt label_value)#
Set volume label values for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [inout]
RatelMaterial
contextlabel_value – [in] Volume label value to set for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetForcingType(RatelMaterial material, RatelForcingType *forcing_type)#
Get
RatelForcingType
for aRatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextforcing_type – [out]
RatelMethodType
forRatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetMaterialName(RatelMaterial material, const char **material_name)#
Get material name for a
RatelMaterial
, orNULL
if none set.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextmaterial_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
contextmodel_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 aRatelMaterial
by face number.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_face – [in]
DMPlex
face numberlabel_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 aRatelMaterial
by face number.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_face – [in]
DMPlex
face numberlabel_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 aRatelMaterial
fromCeedOperator
context.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop – [in]
CeedOperator
with"face id"
and"face domain value"
fieldsface_domain_label – [out]
DMPlex
label corresponding to face domainface_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
contextinitial_random_scaling – [out] Scaling factor for initial random noise to add to zero initial condition for material model
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialHasMMS(RatelMaterial material, PetscBool *has_mms)#
Determine if
RatelMaterial
has MMS solution.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contexthas_mms – [out] Boolean flag indicating if
RatelMaterial
has MMS solution
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetCLPrefix(RatelMaterial material, char **cl_prefix)#
Get command line option prefix for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextcl_prefix – [out] Command line option prefix for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetCLMessage(RatelMaterial material, char **cl_message)#
Get command line option message for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextcl_message – [out] Command line option message for
RatelMaterial
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialCreateOperatorName(RatelMaterial material, const char *base_name, char **operator_name)#
Build CeedOperator name for
RatelMaterial
.Note: Caller is responsible for freeing the allocated name string
PetscFree()
.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextbase_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
andCeedBasis
objects corresponding to residual evaluation.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_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 evaluationbases – [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
andCeedVector
objects corresponding to stored data from residual evaluation.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [in] Composite residual u term
CeedOperator
restriction – [out]
CeedElemRestriction
object corresponding to stored data from residual evaluationvalues – [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
andCeedVector
objects corresponding to state data from residual evaluation.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [in] Composite residual u term
CeedOperator
restriction – [out]
CeedElemRestriction
object corresponding to state data from residual evaluationvalues – [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 forRatelMaterial
.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextbase_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 forRatelMaterial
.Uses the material
SetupVolumeQData
function to set up the QData.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextrestriction – [out]
CeedElemRestriction
for QDataq_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 forRatelMaterial
.Uses
RatelMaterialGetVolumeQData_FEM
to set up the QData.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextrestriction – [out]
CeedElemRestriction
for QDataq_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 forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_face – [in]
DMPlex
face numberorientation – [in] Face orientation number, giving
DMLabel
valuerestriction – [out]
CeedElemRestriction
for QDataq_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 forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm – [in]
DMPlex
to use for diagnostic QDatadm_face – [in]
DMPlex
face numberorientation – [in] Face orientation number, giving
DMLabel
valuerestriction – [out]
CeedElemRestriction
for QDataq_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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [out] Composite residual u term
CeedOperator
to addRatelMaterial
suboperatorop_residual_ut – [out] Composite residual u_t term
CeedOperator
to addRatelMaterial
suboperatorop_residual_utt – [out] Composite residual u_tt term
CeedOperator
to addRatelMaterial
suboperator
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupJacobianSuboperator(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_jacobian)#
Setup Jacobian
CeedOperator
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [in] Composite residual u term
CeedOperator
op_jacobian – [out] Composite Jacobian
CeedOperator
to addRatelMaterial
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
contextop_jacobian – [in] Jacobian
CeedOperator
old_num_sub_operators – [in] Number of suboperators in Jacobian
CeedOperator
before adding boundary suboperatorsnew_num_sub_operators – [in] Number of suboperators in Jacobian
CeedOperator
after adding boundary suboperatorssetup_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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [out] Composite residual u term
CeedOperator
to addRatelMaterial
suboperatoru_dot_loc – [out] CeedVector for passive input velocity field
op_jacobian – [out] Composite Jacobian
CeedOperator
to addRatelMaterial
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
forRatelMaterial
.- Parameters:
material – [in]
RatelMaterial
contextdm_level – [in]
DMPlex
for multigrid level to setupm_loc – [in]
CeedVector
holding multiplicityop_jacobian_fine – [in] Composite Jacobian
CeedOperator
holding fine grid suboperatorsop_jacobian_coarse – [inout] Composite Jacobian
CeedOperator
to addRatelMaterial
suboperatorsop_prolong – [inout] Composite prolongation
CeedOperator
to addRatelMaterial
suboperatorsop_restrict – [inout] Composite restriction
CeedOperator
to addRatelMaterial
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
contextset_or_unset – [in] Boolean flag to set (
PETSC_TRUE
) or unset (PETSC_FALSE
) the smoother contextop_jacobian – [inout] Composite Jacobian
CeedOperator
to updatewas_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
contextop_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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_energy – [in]
DM
for strain energy computationop_strain_energy – [out] Composite strain energy
CeedOperator
to addRatelMaterial
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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_projected_diagnostic – [in]
DM
for projected diagnostic value computationdm_dual_diagnostic – [in]
DM
for dual space diagnostic value computationop_mass_diagnostic – [out] Composite diagnostic value projection
CeedOperator
to addRatelMaterial
suboperatorop_projected_diagnostic – [out] Composite projected diagnostic value
CeedOperator
to addRatelMaterial
suboperatorop_dual_diagnostic – [out] Composite dual space diagnostic value
CeedOperator
to addRatelMaterial
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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_surface_force – [in]
DM
for surface force computationops_surface_force – [out] Composite surface force
CeedOperator
s to addRatelMaterial
suboperator
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupMMSErrorSuboperator(RatelMaterial material, CeedOperator op_mms_error)#
Setup MMS error
CeedOperator
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_mms_error – [out] Composite MMS error
CeedOperator
to addRatelMaterial
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
contextmaterial_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 toRatel
JiT root directory.Not collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextmodel_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
contextparams_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
contextparams_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
contextparams_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
contextparameters – [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:
ratel – [in]
Ratel
contextmaterial – [out]
RatelMaterial
context
- 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
withPetscFree()
.- Parameters:
ratel – [in]
Ratel
contextoptions – [out]
RatelMPMOptions
context to initialize
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialGetMPMContext(RatelMaterial material, RatelMPMContext *mpm)#
Get the
RatelMPMContext
for aRatelMaterial
, creating it if necessary.Collective across MPI processes.
Note
`mpm` is a borrowed reference and should not be destroyed by the caller.
- Parameters:
material – [in]
RatelMaterial
contextmpm – [out]
RatelMPMContext
context
- 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
contextx_ref_points – [in]
CeedVector
holding reference coordinatesrestriction_x_points – [in]
CeedElemRestriction
for pointsmpm – [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:
mpm – [inout]
RatelMPMContext
context to destroy
- 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
contextx_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 aRatelMPMContext
.Not collective across MPI processes.
- Parameters:
mpm – [in]
RatelMPMContext
contextrestriction_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
contextnum_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 aRatelMPMContext
.Collective across MPI processes.
- Parameters:
mpm – [in]
RatelMPMContext
contextnum_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 aCeedOperator
using aRatelMPMContext
.Not collective across MPI processes.
- Parameters:
mpm – [in]
RatelMPMContext
contextop – [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
contextop_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
contextU – [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
contextop_swarm_to_mesh – [inout] Composite
CeedOperator
for swarm to mesh projectionop_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
contextU – [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
contextdm_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
contextmpm_options – [in]
RatelMPMOptions
contextnum_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:
material – [in]
RatelMaterial
context
- 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
contextU – [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 forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextlabel_name – [in]
DMPlex
label name for volumelabel_value – [in]
DMPlex
label value for volumerestriction – [out]
CeedElemRestriction
for QDataq_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
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [out] Composite residual u term
CeedOperator
to addRatelMaterial
suboperatorop_residual_ut – [out] Composite residual u_t term
CeedOperator
to addRatelMaterial
suboperatorop_residual_utt – [out] Composite residual u_tt term
CeedOperator
to addRatelMaterial
suboperator
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupJacobianSuboperator_MPM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_jacobian)#
Setup Jacobian
CeedOperator
forRatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [out] Composite residual u term
CeedOperator
op_jacobian – [out] Composite Jacobian
CeedOperator
to addRatelMaterial
suboperator
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupMMSErrorSuboperator_MPM(RatelMaterial material, CeedOperator op_mms_error)#
Setup MMS error
CeedOperator
forRatelMaterial
- Parameters:
material – [in]
RatelMaterial
contextop_mms_error – [out] Composite MMS error
CeedOperator
to addRatelMaterial
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
contextop_residual – [out] Composite residual u term
CeedOperator
to addRatelMaterial
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?
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.
-
const char *name#
-
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
-
CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#
-
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
-
CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#
-
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.
-
CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#
-
struct RatelMMSCEEDBPsParams#
- #include <mms-ceed-bps.h>
CEED BPs MMS parameters.
-
struct RatelMMSLinearElasticityParams#
- #include <mms-elasticity-linear.h>
Linear elasticity MMS parameters.
-
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
-
CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#
-
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
-
CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]#
-
struct RatelLinearPlasticityParams#
- #include <plasticity-linear.h>
Plasticity model data.
-
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.
-
CeedScalar common_parameters[RATEL_NUMBER_COMMON_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.