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 (*RatelComputeDiagnosticStress)(void*, const CeedScalar, const CeedScalar, const CeedScalar, CeedScalar[3][3], CeedScalar[6], CeedScalar*, CeedScalar*, CeedScalar*)¶
-
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*)¶
-
typedef int (*RatelComputeDiagnosticMixedStress)(void*, const CeedScalar, const CeedScalar, const CeedScalar, const CeedScalar, CeedScalar[3][3], CeedScalar[6], CeedScalar*, CeedScalar*, CeedScalar*)¶
-
typedef int (*RatelComputef1_Poroelastic)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, CeedScalar[3][3], CeedScalar[3][3], CeedScalar*)¶
-
typedef int (*RatelComputedf1_fwd_Poroelastic)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar *const*, CeedScalar[3][3], CeedScalar[3][3], CeedScalar*, CeedScalar*)¶
-
typedef int (*RatelComputedg0_fwd_Poroelastic)(void*, CeedInt, CeedInt, const CeedScalar *const*, const CeedScalar, const CeedScalar, CeedScalar *const*, CeedScalar*)¶
-
typedef int (*RatelComputeg1_Poroelastic)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar[3][3], CeedScalar *const*, CeedScalar[3])¶
-
typedef int (*RatelComputedg1_fwd_Poroelastic)(void*, CeedInt, CeedInt, const CeedScalar *const*, CeedScalar[3][3], const CeedScalar, const CeedScalar, CeedScalar *const*, CeedScalar[3])¶
-
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 mixed_ogden_param_data_private¶
Mixed Ogden model parameters for
CeedQFunctionContext
and viewing.
-
RatelModelParameterData mixed_ogden_param_data = &mixed_ogden_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 mms_linear_poroelasticity_param_data_private¶
Linear poroelasticity MMS model parameters for
CeedQFunctionContext
and viewing.
-
RatelModelParameterData mms_linear_poroelasticity_param_data = &mms_linear_poroelasticity_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¶
-
struct RatelModelParameterData_private poroelasticity_linear_param_data_private¶
Linear poroelasticity model parameters for
CeedQFunctionContext
and viewing.
-
RatelModelParameterData poroelasticity_linear_param_data = &poroelasticity_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 UpdateVolume_MPM(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Update swarm volume based on previous converged solution for hyperelastic materials.
- Parameters:
ctx – [in] QFunction context, unused
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - qdata
1 - gradient of u with respect to reference coordinates
2 - Volume in the previous converged solution
out – [out] Output array
0 - Updated volume J*V_prev
- Returns:
An error code: 0 - success, otherwise - failure
-
int UpdateVolume_Damage_MPM(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Update swarm volume based on previous converged solution for 4 component materials.
- Parameters:
ctx – [in] QFunction context, unused
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - qdata
1 - gradient of u_tilde with respect to previous coordinates X_previous
2 - volume in the previous converged solution
out – [out] Output array
0 - Updated volume J*V_prev
- Returns:
An error code: 0 - success, otherwise - failure
-
int SetupVolumeGeometryMPM(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 (previous converged) 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
2 - point volumes
out – [out] Output array
0 - qdata,
w V_p
anddXdx
- Returns:
An error code: 0 - success, otherwise - failure
-
int SetupVolumeGeometrySymmetricMPM(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
2 - point volumes
out – [out] Output array
0 - qdata,
w V_p
anddXdx_sym
- 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, bool has_stored_values, bool has_state_values, CeedInt num_active_field_eval_modes, 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 ElasticityDiagnostic(void *ctx, CeedInt Q, RatelComputeDiagnosticStress compute_diagnostic_stress, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute elasticity diagnostic evaluation.
- Parameters:
ctx – [in] QFunction context, holding common parameters and model parameters
Q – [in] Number of quadrature points
compute_diagnostic_stress – [in] Function to compute diagnostic
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 ElasticityDualDiagnostic(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 RatelKirchhoffTau_IsochoricMooneyRivlin(CeedScalar J_dVdJ, CeedScalar bulk, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar J_pow, const CeedScalar e_sym[6], CeedScalar tau_sym[6])¶
Compute Kirchoff tau for isochoric Mooney-Rivlin hyperelasticity.
- Parameters:
J_dVdJ – [in] J dV/dJ
bulk – [in] Bulk modulus
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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 J_dVdJ, 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:
J_dVdJ – [in] J dV/dJ
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 J_dVdJ, CeedScalar J2_d2VdJ2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
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 J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk, CeedScalar mu_1, CeedScalar two_mu_2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk – [in] Bulk modulus
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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 RatelStrainEnergy_IsochoricMooneyRivlin(CeedScalar V, CeedScalar bulk, CeedScalar mu_1, CeedScalar mu_2, CeedScalar Jm1, CeedScalar trace_strain, CeedScalar trace_strain2, CeedScalar *strain_energy)¶
Compute strain energy for isochoric Mooney-Rivlin model.
psi = 0.5 mu_1 (I1_bar - 3) + 0.5 mu_2 (I2_bar - 3) + bulk * V(J)
- Parameters:
V – [in] V(J)
bulk – [in] Bulk modulus
mu_1 – [in] First Mooney-Rivlin parameter
mu_2 – [in] Second Mooney-Rivlin parameter
Jm1 – [in] Determinant of deformation gradient - 1
trace_strain – [in] Trace of Green Lagrange or Green euler strain tensor (E or e)
trace_strain2 – [in] Trace of E^2 (or e^2)
strain_energy – [out] Strain energy for isochoric Mooney-Rivlin model
- 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 DiagnosticStress_IsochoricMooneyRivlin(void *ctx, const CeedScalar Jm1, const CeedScalar V, const CeedScalar J_dVdJ, CeedScalar grad_u[3][3], CeedScalar sigma_sym[6], CeedScalar *strain_energy, CeedScalar *trace_e, CeedScalar *trace_e2)¶
Compute projected diagnostic stress, and strain energy invariants values for isochoric Mooney-Rivlin hyperelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelMooneyRivlinElasticityParams
Jm1 – [in] Determinant of deformation gradient - 1
V – [in] V(J); volumetric energy
J_dVdJ – [in] J dV/dJ
grad_u – [in] Gradient of incremental change in u
sigma_sym – [out] Cauchy stress tensor in symmetric representation
strain_energy – [out] Strain energy
trace_e – [out] Trace of strain tensor e
trace_e2 – [out] Trace of strain tensor e*e
- 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 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 J_dVdJ, CeedScalar bulk, CeedScalar two_mu, 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:
J_dVdJ – [in] J dV/dJ
bulk – [in] Bulk modulus
two_mu – [in] Two times the shear modulus
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 J_dVdJ, 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:
J_dVdJ – [in] J dV/dJ
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 J_dVdJ, CeedScalar J2_d2VdJ2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
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 J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk, CeedScalar mu, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk – [in] Bulk modulus
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
FdSFTranspose – [out] F*dS*F^T needed for computing df1 in current configuration
- Returns:
An error code: 0 - success, otherwise - failure
-
int RatelStrainEnergy_IsochoricNeoHookean(CeedScalar V, CeedScalar bulk, CeedScalar mu, CeedScalar Jm1, CeedScalar trace_strain, CeedScalar *strain_energy)¶
Compute strain energy for isochoric neo-Hookean model.
psi = 0.5 mu (I1_bar - 3) + bulk * V(J)
- Parameters:
V – [in] V(J)
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 isochoric Neo-Hookean model
- 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 DiagnosticStress_IsochoricNeoHookean(void *ctx, const CeedScalar Jm1, const CeedScalar V, const CeedScalar J_dVdJ, CeedScalar grad_u[3][3], CeedScalar sigma_sym[6], CeedScalar *strain_energy, CeedScalar *trace_e, CeedScalar *trace_e2)¶
Compute projected diagnostic stress, and strain energy invariants values for isochoric Neo-Hookean hyperelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelNeoHookeanElasticityParams
Jm1 – [in] Determinant of deformation gradient - 1
V – [in] V(J); volumetric energy
J_dVdJ – [in] J dV/dJ
grad_u – [in] Gradient of incremental change in u
sigma_sym – [out] Cauchy stress tensor in symmetric representation
strain_energy – [out] Strain energy
trace_e – [out] Trace of strain tensor e
trace_e2 – [out] Trace of strain tensor e*e
- 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
out – [out] Output arrays
- 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 J_dVdJ, CeedScalar bulk, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, 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:
J_dVdJ – [in] J dV/dJ
bulk – [in] Bulk modulus
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
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 J_dVdJ, CeedScalar bulk, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, CeedScalar Jm1, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])¶
Compute second Kirchoff stress for isochoric Ogden hyperelasticity.
- Parameters:
J_dVdJ – [in] J dV/dJ
bulk – [in] Bulk modulus
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
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 SecondKirchhoffStress_IsochoricOgden_fwd(CeedScalar J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, 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 Ogden hyperelasticity.
- Parameters:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk – [in] Bulk modulus
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
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_IsochoricOgden(CeedScalar J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk – [in] Bulk modulus
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 RatelStrainEnergy_IsochoricOgden(CeedScalar V, CeedScalar bulk, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar pr_str_bar[3], CeedScalar *strain_energy)¶
Compute strain energy for isochoric Ogden model.
psi = sum_{j=1:3} (sum_{k=1:N} m_k/alpha_k (pr_bar_j^alpha_k - 1)) + bulk * V(J)
- Parameters:
V – [in] V(J)
bulk – [in] Bulk modulus
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
pr_str_bar – [in] Modified principal stretch
strain_energy – [out] Strain energy for isochoric Ogden model
- 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 DiagnosticStress_IsochoricOgden(void *ctx, const CeedScalar Jm1, const CeedScalar V, const CeedScalar J_dVdJ, CeedScalar grad_u[3][3], CeedScalar sigma_sym[6], CeedScalar *strain_energy, CeedScalar *trace_e, CeedScalar *trace_e2)¶
Compute projected diagnostic stress, and strain energy invariants values for isochoric Ogden hyperelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelOgdenElasticityParams
Jm1 – [in] Determinant of deformation gradient - 1
V – [in] V(J); volumetric energy
J_dVdJ – [in] J dV/dJ
grad_u – [in] Gradient of incremental change in u
sigma_sym – [out] Cauchy stress tensor in symmetric representation
strain_energy – [out] Strain energy
trace_e – [out] Trace of strain tensor e
trace_e2 – [out] Trace of strain tensor e*e
- 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
out – [out] Output arrays
- 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_MooneyRivlin(CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar J_pow, const CeedScalar e_sym[6], CeedScalar tau_iso_sym[6])¶
Compute isochoric part of Kirchoff tau for Mooney-Rivlin hyperelasticity.
tau_iso = 2 (mu_1 * J^{-2/3} + 2 mu_2 * J^{-4/3}) e_dev + 2 mu_2 * J^{-4/3} (trace(e) b - e*b) - 4/3 mu_2 * J^{-4/3}*(I1(e) + 2* I2(e)) * I
- Parameters:
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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_MooneyRivlin(CeedScalar mu_1, CeedScalar two_mu_2, 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 Mooney-Rivlin hyperelasticity.
- Parameters:
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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_MooneyRivlin_fwd(CeedScalar mu_1, CeedScalar two_mu_2, 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 Mooney-Rivlin hyperelasticity.
- Parameters:
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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_MooneyRivlin(CeedScalar mu_1, CeedScalar two_mu_2, 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 isochoric Mooney-Rivlin hyperelasticity in current configuration.
- Parameters:
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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
-
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
-
int RatelIsochoricKirchhoffTau_Ogden(CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar series_terms[9], const CeedScalar e_vals[3], const CeedScalar e_vecs[3][3], CeedScalar tau_iso_sym[6])¶
Compute isochoric part of Kirchoff tau for Ogden hyperelasticity.
- Parameters:
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
series_terms – [in] Series terms
e_vals – [in] Eigenvalues of Green Euler strain tensor
e_vecs – [in] Eigenvectors of Green Euler strain tensor
tau_iso_sym – [out] Isochoric Kirchoff tau, in symmetric representation
- Returns:
An error code: 0 - success, otherwise - failure
-
int RatelIsochoricSecondKirchhoffStress_Ogden(CeedInt N, const CeedScalar *m, const CeedScalar *alpha, 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 Ogden hyperelasticity.
- Parameters:
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
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_Ogden_fwd(CeedInt N, const CeedScalar *m, const CeedScalar *alpha, 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 Ogden hyperelasticity.
- Parameters:
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
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_Ogden(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 depsilon_sym[6], CeedScalar FdSFTranspose_iso_sym[6], CeedScalar *trace_depsilon)¶
Compute F*dS_iso*F^T for Ogden hyperelasticity in current configuration.
- Parameters:
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
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
-
int PsiPlus_Linear(CeedScalar mu, CeedScalar bulk, CeedScalar trace_e, const CeedScalar e_dev_sym[6], CeedScalar *Psi_plus)¶
Compute Psi_plus for linear elasticity with damage.
- Parameters:
mu – [in] shear modulus
bulk – [in] bulk modulus
trace_e – [in] trace strain tensor
e_dev_sym – [in] deviatoric strain tensor in symmetric representation
Psi_plus – [out] Psi^+
- Returns:
Computed Psi_plus for linear elasticity
-
int PsiPlus_Linear_fwd(CeedScalar mu, CeedScalar bulk, CeedScalar trace_e, const CeedScalar e_dev_sym[6], const CeedScalar de_sym[6], CeedScalar *dPsi_plus)¶
Compute Linearization of Psi_plus for linear elasticity with damage.
- Parameters:
mu – [in] Shear modulus
bulk – [in] Bulk modulus
trace_e – [in] trace strain tensor
e_dev_sym – [in] deviatoric strain tensor in symmetric representation
de_sym – [in] Linear strain tensor increment in symmetric representation
dPsi_plus – [out] dPsi^+
- Returns:
Computed linearization of Psi_plus for linear elasticity
-
int ComputeDegradedStress_Linear(CeedScalar mu, CeedScalar bulk, CeedScalar eta, CeedScalar phi, CeedScalar trace_e, const CeedScalar e_dev_sym[6], CeedScalar sigma_degr_sym[6])¶
Compute
sigma_degr
for linear damage elasticity.sigma_degr = g(phi) * sigma_vol + g(phi) * sigma_dev, if trace_e >= 0
sigma_degr = sigma_vol + g(phi) * sigma_dev, if trace_e < 0
- Parameters:
mu – [in] Shear modulus
bulk – [in] Bulk modulus
eta – [in] Residual stiffness
phi – [in] Damage field
trace_e – [in] trace strain tensor
e_dev_sym – [in] deviatoric strain tensor in symmetric representation
sigma_degr_sym – [out] Degraded stress in symmetric representation
- Returns:
An error code: 0 - success, otherwise - failure
-
int ComputeDegradedStress_Linear_fwd(CeedScalar mu, CeedScalar bulk, CeedScalar eta, bool use_offdiagonal, CeedScalar phi, CeedScalar trace_e, CeedScalar dphi, CeedScalar trace_de, const CeedScalar e_dev_sym[6], const CeedScalar de_dev_sym[6], CeedScalar dsigma_degr_sym[6])¶
Compute linearization of
sigma_degr
for linear damage elasticity.dsigma_degr = g(phi) * dsigma_vol + g(phi) * dsigma_dev + dg * sigma_vol + dg * sigma_dev, if trace_e >= 0
dsigma_degr = dsigma_vol + g(phi) * dsigma_dev + dg * sigma_dev, if trace_e < 0
- Parameters:
mu – [in] Shear modulus
bulk – [in] Bulk modulus
eta – [in] Residual stiffness
use_offdiagonal – [in] Flag to use off-diagonal terms
phi – [in] Damage field
trace_e – [in] trace strain tensor
dphi – [in] Increment of damage field
trace_de – [in] Trace of incremental linear strain
e_dev_sym – [in] deviatoric strain tensor in symmetric representation
de_dev_sym – [in] deviatoric strain tensor increment in symmetric representation
dsigma_degr_sym – [out] Linearization of degraded stress in symmetric representation
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageResidual_ut_Linear(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 ElasticityDamageResidual_Linear(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 ElasticityDamageJacobian_Linear(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
1 - Current state values
2 - Stored values
3 - du (four components: 3 displacement components, 1 damage field)
4 - du_g gradient of du with respect to reference coordinates
out – [out] Output arrays
0 - action on du
1 - action on du_g
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageDiagnostic_Linear(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
2 - u (four components: 3 displacement components, 1 scalar damage field)
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 ElasticityDamageStrainEnergy_Linear(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
2 - u (4 components)
3 - 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 ElasticityDamageDualDiagnostic_Linear(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute dual space diagnostic values for linear elasticity with damage.
- 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 ElasticityDamagePlatenResidual_Linear(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 ElasticityDamagePlatenJacobian_Linear(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 - Stored values
3 - du (four components: 3 displacement components, 1 damage field)
4 - du_g gradient of du 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 PlatenBCsResidualElasticityDamage_Linear(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 PlatenBCsJacobianElasticityDamage_Linear(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 ElasticityDualDiagnostic_Linear(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 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 MixedElasticityDiagnostic(void *ctx, CeedInt Q, RatelComputeDiagnosticMixedStress compute_diagnostic_mixedstress, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute mixed elasticity diagnostic evaluation.
- Parameters:
ctx – [in] QFunction context, holding common parameters and model parameters
Q – [in] Number of quadrature points
compute_diagnostic_mixedstress – [in] Function to compute diagnostic
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 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 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 J_dVdJ, 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:
J_dVdJ – [in] J dV/dJ
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 J_dVdJ, 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:
J_dVdJ – [in] J dV/dJ
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 J_dVdJ, CeedScalar J2_d2VdJ2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
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 J_dVdJ, CeedScalar J2_d2VdJ2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
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 V, 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:
V – [in] V(J)
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 DiagnosticStress_MixedNeoHookean(void *ctx, const CeedScalar p, const CeedScalar Jm1, const CeedScalar V, const CeedScalar J_dVdJ, CeedScalar grad_u[3][3], CeedScalar sigma_sym[6], CeedScalar *strain_energy, CeedScalar *trace_e, CeedScalar *trace_e2)¶
Compute projected diagnostic stress, and strain energy invariants values for isochoric Neo-Hookean hyperelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelNeoHookeanElasticityParams
p – [in] Pressure field
Jm1 – [in] Determinant of deformation gradient - 1
V – [in] V(J); volumetric energy
J_dVdJ – [in] J dV/dJ
grad_u – [in] Gradient of incremental change in u
sigma_sym – [out] Cauchy stress tensor in symmetric representation
strain_energy – [out] Strain energy
trace_e – [out] Trace of strain tensor e
trace_e2 – [out] Trace of strain tensor e*e
- 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 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 U, CeedScalar J_dUdJ, CeedScalar bulk_primal, CeedScalar two_mu, CeedScalar p, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
bulk_primal – [in] Primal bulk modulus
two_mu – [in] Two times the shear modulus
p – [in] Lagrange multiplier
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 U, CeedScalar J_dUdJ, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
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 U, CeedScalar J_dUdJ, CeedScalar J2_d2UdJ2, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
J2_d2UdJ2 – [in] J^2 d^2U/dJ^2
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 U, CeedScalar J_dUdJ, CeedScalar J2_d2UdJ2, CeedScalar bulk_primal, CeedScalar mu, CeedScalar p, CeedScalar dp, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
J2_d2UdJ2 – [in] J^2 d^2U/dJ^2
bulk_primal – [in] Primal bulk modulus
mu – [in] Shear modulus
p – [in] Pressure
dp – [in] Increment of Pressure
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 U, 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:
U – [in] U(J)
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 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 J_dVdJ, CeedScalar bulk_primal, CeedScalar p, CeedScalar Jm1, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar series_terms[9], const CeedScalar e_vals[3], const CeedScalar e_vecs[3][3], CeedScalar tau_sym[6])¶
Compute Kirchoff tau for mixed Ogden hyperelasticity.
tau = [bulk_primal * J dV/dJ - p J] I + tau_iso
- Parameters:
J_dVdJ – [in] J dV/dJ
bulk_primal – [in] Primal bulk modulus
p – [in] Pressure
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
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 RatelSecondKirchhoffStress_MixedOgden(CeedScalar J_dVdJ, CeedScalar bulk_primal, CeedScalar p, 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 mixed Ogden hyperelasticity.
S = S_iso + S_vol
- Parameters:
J_dVdJ – [in] J dV/dJ
bulk_primal – [in] Primal bulk modulus
p – [in] Pressure
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 RatelSecondKirchhoffStress_MixedOgden_fwd(CeedScalar J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk_primal, CeedScalar p, CeedScalar dp, 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], CeedScalar *Cinv_contract_dE)¶
Compute derivative of second Kirchoff stress for mixed Ogden hyperelasticity.
dS = dS_iso + dS_vol
- Parameters:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk_primal – [in] Primal bulk modulus
p – [in] Pressure
dp – [in] Increment of Pressure
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
Cinv_contract_dE – [out]
C_inv : dE
- Returns:
An error code: 0 - success, otherwise - failure
-
int RatelStrainEnergy_MixedOgden(CeedScalar V, CeedScalar bulk, CeedInt N, const CeedScalar *m, const CeedScalar *alpha, const CeedScalar pr_str_bar[3], CeedScalar *strain_energy)¶
Compute strain energy for mixed Ogden model.
psi = sum_{j=1:3} (sum_{k=1:N} m_k/alpha_k (pr_bar_j^alpha_k - 1)) + bulk * V(J)
- Parameters:
V – [in] V(J)
bulk – [in] Bulk modulus
N – [in] Number of Ogden parameters
m – [in] Array of first Ogden material model
alpha – [in] Array of second Ogden material model
pr_str_bar – [in] Modified principal stretch
strain_energy – [out] Strain energy for mixed Ogden model
- 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
RatelMixedOgdenElasticityParams
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 DiagnosticStress_MixedOgden(void *ctx, const CeedScalar p, const CeedScalar Jm1, const CeedScalar V, const CeedScalar J_dVdJ, CeedScalar grad_u[3][3], CeedScalar sigma_sym[6], CeedScalar *strain_energy, CeedScalar *trace_e, CeedScalar *trace_e2)¶
Compute projected diagnostic stress, and strain energy invariants values for mixed Ogden hyperelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelMixedOgdenElasticityParams
p – [in] Pressure field
Jm1 – [in] Determinant of deformation gradient - 1
V – [in] V(J); volumetric energy
J_dVdJ – [in] J dV/dJ
grad_u – [in] Gradient of incremental change in u
sigma_sym – [out] Cauchy stress tensor in symmetric representation
strain_energy – [out] Strain energy
trace_e – [out] Trace of strain tensor e
trace_e2 – [out] Trace of strain tensor e*e
- 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
RatelMixedOgdenElasticityParams
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 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
RatelMixedOgdenElasticityParams
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
RatelMixedOgdenElasticityParams
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_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
RatelMixedOgdenElasticityParams
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
RatelMixedOgdenElasticityParams
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_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
RatelMixedOgdenElasticityParams
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
RatelMixedOgdenElasticityParams
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
RatelMixedOgdenElasticityParams
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
RatelMixedOgdenElasticityParams
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 ElasticityPC_uu_MixedOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute displacement block for pMG preconditioner for mixed Ogden hyperelasticity in initial configuration.
- Parameters:
ctx – [in] QFunction context, holding
RatelMixedOgdenElasticityParams
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_MixedOgdenInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute pressure block for pMG preconditioner for mixed Ogden hyperelasticity in initial configuration.
- Parameters:
ctx – [in] QFunction context, holding
RatelMixedOgdenElasticityParams
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 RatelVolumetricKirchhoffTau_Mixed_PL(CeedScalar U, CeedScalar J_dUdJ, CeedScalar bulk_primal, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
bulk_primal – [in] Primal bulk modulus
p – [in] Pressure
tau_vol_sym – [out] Volumetric Kirchoff tau
- Returns:
An error code: 0 - success, otherwise - failure
-
int RatelVolumetricSecondKirchhoffStress_Mixed_PL(CeedScalar U, CeedScalar J_dUdJ, CeedScalar bulk_primal, CeedScalar p, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
bulk_primal – [in] Primal bulk modulus
p – [in] Lagrange multiplier
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 U, CeedScalar J_dUdJ, CeedScalar J2_d2UdJ2, CeedScalar bulk_primal, CeedScalar p, CeedScalar dp, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
J2_d2UdJ2 – [in] J^2 d^2U/dJ^2
bulk_primal – [in] Primal bulk modulus
p – [in] Pressure
dp – [in] Increment of Pressure
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 U, CeedScalar J_dUdJ, CeedScalar J2_d2UdJ2, CeedScalar bulk_primal, CeedScalar p, CeedScalar dp, 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:
U – [in] U(J)
J_dUdJ – [in] J dU/dJ
J2_d2UdJ2 – [in] J^2 d^2U/dJ^2
bulk_primal – [in] Primal bulk modulus
p – [in] Pressure
dp – [in] Increment of Pressure
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 J_dVdJ, 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:
J_dVdJ – [in] J dV/dJ
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 J_dVdJ, 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:
J_dVdJ – [in] J dV/dJ
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 J_dVdJ, CeedScalar J2_d2VdJ2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
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 J_dVdJ, CeedScalar J2_d2VdJ2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
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 J_dVdJ, CeedScalar lambda, CeedScalar mu_1, CeedScalar two_mu_2, 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) + (lambda * J dV/dJ) I
Ref https://ratel.micromorph.org/doc/modeling/materials/mooney-rivlin/#equation-mooney-rivlin-tau-stable
- Parameters:
J_dVdJ – [in] J dV/dJ
lambda – [in] Lamé parameter
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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 J_dVdJ, 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 = (lambda * J dV/dJ) * 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:
J_dVdJ – [in] J dV/dJ
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 J_dVdJ, CeedScalar J2_d2VdJ2, 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 = dS_vol - (mu_1 + 2 mu_2) * dC_inv + 2 mu_2 (tr(dE)*I - dE)
dS_vol = ((lambda J^2 * d2V/dJ2 + lambda * J dV/dJ) * (C_inv:dE)) C_inv + (lambda * J dV/dJ) dC_inv
Ref https://ratel.micromorph.org/doc/modeling/materials/mooney-rivlin/#equation-mooney-rivlin-tau-stable
- Parameters:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
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 J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar lambda, CeedScalar mu_1, CeedScalar two_mu_2, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
lambda – [in] Lamé parameter
mu_1 – [in] First Mooney-Rivlin parameter
two_mu_2 – [in] Two times the second Mooney-Rivlin parameter
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 RatelStrainEnergy_MooneyRivlin(CeedScalar V, CeedScalar lambda, CeedScalar mu_1, CeedScalar two_mu_2, CeedScalar Jm1, CeedScalar trace_strain, CeedScalar trace_strain2, CeedScalar *strain_energy)¶
Compute strain energy for Mooney-Rivlin model.
psi = lambda * V(J) - (mu_1 + 2 mu_2) logJ + mu_1 I1(E) + 2 mu_2 II(E)
- Parameters:
V – [in] V(J)
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
trace_strain – [in] Trace of Green Lagrange or Green euler strain tensor (E or e)
trace_strain2 – [in] Trace of E^2 (or e^2)
strain_energy – [out] Strain energy for Mooney-Rivlin model
- 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 DiagnosticStress_MooneyRivlin(void *ctx, const CeedScalar Jm1, const CeedScalar V, const CeedScalar J_dVdJ, CeedScalar grad_u[3][3], CeedScalar sigma_sym[6], CeedScalar *strain_energy, CeedScalar *trace_e, CeedScalar *trace_e2)¶
Compute projected diagnostic stress, and strain energy invariants values for Mooney-Rivlin hyperelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelMooneyRivlinElasticityParams
Jm1 – [in] Determinant of deformation gradient - 1
V – [in] V(J); volumetric energy
J_dVdJ – [in] J dV/dJ
grad_u – [in] Gradient of incremental change in u
sigma_sym – [out] Cauchy stress tensor in symmetric representation
strain_energy – [out] Strain energy
trace_e – [out] Trace of strain tensor e
trace_e2 – [out] Trace of strain tensor e*e
- 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 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 SetPointFields_MPM_NeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
-
int StrainEnergy_MPM_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_MPM_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 f1_MPM_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_MPM_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_MPM_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_MPM_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
-
int ElasticityDamageDiagnostic_NeoHookean_MPM(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute projected diagnostic values for Neo-hookean hyperelasticity initial conf.
- Parameters:
ctx – [in] QFunction context holding RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - qdata with respect to X_previous
1 - state (11 components: Psi_plus, 9 Grad_u)
2 - u (four components: 3 displacement components (unused), 1 scalar damage field)
3 - gradient of u with respect to previous coordinates X_previous (unused)
4 - rho
5 - elastic parameters
RatelNeoHookeanElasticityPointFields
6 - damage parameters
RatelElasticityDamagePointFields
out – [out] Output arrays
0 - projected diagnostic values
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageStrainEnergy_NeoHookean_MPM(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute (degraded) strain energy for Neo-hookean hyperelasticity.
- Parameters:
ctx – [in] QFunction context holding RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - qdata
1 - state (10 components: Psi_plus, 9 Grad_u)
2 - u (4 components: 3 displacement components (unused), 1 scalar damage field)
3 - gradient of u with respect to reference coordinates (unused)
4 - rho (unused)
5 - elastic parameters
RatelNeoHookeanElasticityPointFields
6 - damage parameters
RatelElasticityDamagePointFields
out – [out] Output arrays
0 - (degraded) strain energy
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageDualDiagnostic_NeoHookean_MPM(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute dual space diagnostic values for NeoHookean hyperelasticity with damage.
- Parameters:
ctx – [in] QFunction context, unused
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - volumetric qdata with respect to X
1 - state (10 components: Psi_plus, 9 Grad_u)
3 - rho
out – [out] Output array
0 - nodal volume
- Returns:
An error code: 0 - success, otherwise - failure
-
int SetPointFields_MPM_ElasticityDamageNeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Set point fields for Neo-Hookean hyperelasticity with damage phase field.
- Parameters:
ctx – [in] QFunction context holding RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays, empty
out – [out] Output arrays
0 - density
1 - elastic parameters
RatelNeoHookeanElasticityPointFields
2 - damage parameters
RatelElasticityDamagePointFields
3 - initial state
4 - current state
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageResidual_ut_NeoHookeanCurrent_MPM(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
1 - u_tilde_t (four components: 3 displacement components, 1 scalar damage field)
2 - rho (unused)
3 - elastic parameters (unused)
4 - damage parameters
out – [out] Output arrays
0 - action on u_t
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageResidual_NeoHookeanCurrent_MPM(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute residual for Neo-hookean hyperelasticity initial conf.
- Parameters:
ctx – [in] QFunction context, holding
RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - volumetric qdata with respect to X_previous
1 - state (10 components: Psi_plus, 9 Grad_u_previous)
2 - u_tilde (four components: 3 displacement components, 1 scalar damage field)
3 - u_tilde_g gradient of u_tilde with respect to previous coordinates X_previous
4 - rho (unused)
5 - elastic parameters
RatelNeoHookeanElasticityPointFields
6 - damage parameters
RatelElasticityDamagePointFields
out – [out] Output arrays
0 - updated state (10 components: Psi_plus, 9 Grad_u)
1 - stored values (20 components: phi, Psi_plus_history_flag, 9 dXdx, Jn, Jm1, J_pow, 6 e_sym)
2 - action on u_tilde
3 - action on u_tilde_g
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageJacobian_NeoHookeanCurrent_MPM(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute jacobian for Neo-hookean hyperelasticity initial conf.
- Parameters:
ctx – [in] QFunction context, holding
RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - volumetric qdata with respect to X_previous
1 - current state values (10 components: Psi_plus, 9 Grad_u)
2 - Stored values (20 components: phi, Psi_plus_history_flag, 9 dXdx, Jn, Jm1, J_pow, 6 e_sym)
3 - du (four components: 3 displacement components, 1 damage field)
4 - du_g gradient of du with respect to previous coordinates X_previous
5 - rho (unused)
6 - elastic parameters
RatelNeoHookeanElasticityPointFields
7 - damage parameters
RatelElasticityDamagePointFields
out – [out] Output arrays
0 - action on du
1 - action on du_g
- 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
-
int RatelKirchhoffTau_NeoHookean(CeedScalar J_dVdJ, CeedScalar lambda, CeedScalar two_mu, const CeedScalar e_sym[6], CeedScalar tau_sym[6])¶
Compute Kirchoff tau for neo-Hookean hyperelasticity.
tau = (lambda * J dV/dJ) I + 2 mu * e
Ref https://ratel.micromorph.org/doc/modeling/materials/neo-hookean/#equation-eq-tau-neo-hookean
- Parameters:
J_dVdJ – [in] J dV/dJ
lambda – [in] Lamé parameter
two_mu – [in] Two times the shear modulus
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 J_dVdJ, CeedScalar lambda, CeedScalar two_mu, const CeedScalar C_inv_sym[6], const CeedScalar E_sym[6], CeedScalar S_sym[6])¶
Compute second Kirchoff stress for neo-Hookean hyperelasticity.
S = (lambda * J dV/dJ) * C_inv + 2 mu C_inv * E
Ref https://ratel.micromorph.org/doc/modeling/materials/neo-hookean/#equation-eq-tau-neo-hookean
- Parameters:
J_dVdJ – [in] J dV/dJ
lambda – [in] Lamé parameter
two_mu – [in] Two times the shear modulus
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 J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar lambda, CeedScalar mu, 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 = dS_vol - mu * dC_inv
dS_vol = ((lambda J^2 * d2V/dJ2 + lambda * J dV/dJ) * (C_inv:dE)) C_inv + (lambda * J dV/dJ) dC_inv
Ref https://ratel.micromorph.org/doc/modeling/materials/neo-hookean/#equation-eq-tau-neo-hookean
- Parameters:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
lambda – [in] Lamé parameter
mu – [in] Shear modulus
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 J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar lambda, CeedScalar mu, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
lambda – [in] Lamé parameter
mu – [in] Shear modulus
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 RatelStrainEnergy_NeoHookean(CeedScalar V, CeedScalar lambda, CeedScalar mu, CeedScalar Jm1, CeedScalar trace_strain, CeedScalar *strain_energy)¶
Compute strain energy for neo-Hookean model.
psi = lambda * V(J) - mu logJ + mu I1(E)
- Parameters:
V – [in] V(J)
lambda – [in] Lamé parameter
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 Neo-Hookean model
- 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 DiagnosticStress_NeoHookean(void *ctx, const CeedScalar Jm1, const CeedScalar V, const CeedScalar J_dVdJ, CeedScalar grad_u[3][3], CeedScalar sigma_sym[6], CeedScalar *strain_energy, CeedScalar *trace_e, CeedScalar *trace_e2)¶
Compute projected diagnostic stress, and strain energy invariants values for Neo-hookean hyperelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelNeoHookeanElasticityParams
Jm1 – [in] Determinant of deformation gradient - 1
V – [in] V(J); volumetric energy
J_dVdJ – [in] J dV/dJ
grad_u – [in] Gradient of incremental change in u
sigma_sym – [out] Cauchy stress tensor in symmetric representation
strain_energy – [out] Strain energy
trace_e – [out] Trace of strain tensor e
trace_e2 – [out] Trace of strain tensor e*e
- 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
-
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
-
int PsiPlus_NeoHookean(CeedScalar V, CeedScalar mu, CeedScalar bulk, CeedScalar Jm1, CeedScalar trace_strain, CeedScalar *Psi_plus)¶
Compute Psi_plus for Neo-hookean hyperelasticity.
- Parameters:
V – [in] Volumetric term
mu – [in] shear modulus
bulk – [in] bulk modulus
Jm1 – [in] J - 1
trace_strain – [in] Trace of Green Lagrange or Green euler strain tensor (E or e)
Psi_plus – [out] Psi^+
- Returns:
Psi_plus
-
int PsiPlus_NeoHookeanInitial_fwd(CeedScalar J_dVdJ, CeedScalar two_mu, CeedScalar bulk, CeedScalar Jm1, const CeedScalar E_sym[6], const CeedScalar dE_sym[6], CeedScalar *dPsi_plus)¶
Compute Linearization of Psi_plus for Neo-hookean hyperelasticity initial conf.
- Parameters:
J_dVdJ – [in] J dV/dJ
two_mu – [in] 2 mu (shear modulus)
bulk – [in] bulk modulus
Jm1 – [in] J - 1
E_sym – [in] (Green-Lagrange) strain tensor in symmetric representation
dE_sym – [in] strain tensor increment in symmetric representation
dPsi_plus – [out] dPsi^+
- Returns:
An error code: 0 - success, otherwise - failure
-
int ComputeDegradedSecondKirchhoffStress_NeoHookean(CeedScalar J_dVdJ, CeedScalar mu, CeedScalar bulk, CeedScalar eta, CeedScalar phi, CeedScalar Jm1, const CeedScalar E_sym[6], CeedScalar S_degr_sym[6])¶
Compute degraded second Kirchhoff stress (S_degr) for Neo-hookean hyperelasticity initial conf.
- Parameters:
J_dVdJ – [in] J dV/dJ
mu – [in] shear modulus
bulk – [in] bulk modulus
eta – [in] residual stiffness
phi – [in] damage field
Jm1 – [in] trace strain tensor
E_sym – [in] (Green-Lagrange) strain tensor in symmetric representation
S_degr_sym – [out] degraded second Kirchhoff stress in symmetric representation
- Returns:
An error code: 0 - success, otherwise - failure
-
int ComputeDegradedSecondKirchhoffStress_NeoHookean_fwd(CeedScalar J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar two_mu, CeedScalar bulk, CeedScalar eta, bool use_offdiag, CeedScalar phi, CeedScalar Jm1, const CeedScalar F[3][3], const CeedScalar grad_du[3][3], const CeedScalar E_sym[6], CeedScalar dphi, CeedScalar dS_degr_sym[6])¶
Compute linearization of Kirchhoff stress (S_degr) for Neo-hookean hyperelasticity initial conf.
- Parameters:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
two_mu – [in] 2 mu
bulk – [in] bulk modulus
eta – [in] residual stiffness
use_offdiag – [in] offdiagonal term (bool)
phi – [in] damage field
Jm1 – [in] J - 1
F – [in] deformation gradient
grad_du – [in] gradient of u increment
E_sym – [in] (Green-Lagrange) strain tensor in symmetric representation
dphi – [in] increment of phi
dS_degr_sym – [out] linearization of degraded stress in symmetric representation
- Returns:
An error code: 0 - success, otherwise - failure
-
int ComputeDegradedKirchhoffTau_NeoHookean(CeedScalar J_dVdJ, CeedScalar bulk, CeedScalar two_mu, CeedScalar Jm1, CeedScalar J_pow, CeedScalar eta, CeedScalar phi, const CeedScalar e_sym[6], CeedScalar tau_degr_sym[6])¶
Compute degraded Kirchhoff stress (tau) for diagnostic Qfunction.
- Parameters:
J_dVdJ – [in] J dV/dJ
bulk – [in] Bulk modulus
two_mu – [in] Two times the shear modulus
Jm1 – [in] J - 1
J_pow – [in] J^{-2/3}
eta – [in] eta
phi – [in] damage field
e_sym – [in] Green Euler strain, in symmetric representation
tau_degr_sym – [out] degraded second Kirchhoff stress in symmetric representation
- Returns:
An error code: 0 - success, otherwise - failure
-
int PsiPlus_NeoHookeanCurrent_fwd(CeedScalar J_dVdJ, CeedScalar two_mu, CeedScalar bulk, CeedScalar Jm1, CeedScalar J_pow, const CeedScalar e_sym[6], const CeedScalar depsilon_sym[6], CeedScalar *dPsi_plus)¶
Compute Linearization of Psi_plus for Neo-hookean hyperelasticity current conf.
- Parameters:
J_dVdJ – [in] J dV/dJ
two_mu – [in] 2 mu (shear modulus)
bulk – [in] bulk modulus
Jm1 – [in] J - 1
J_pow – [in] J^{-2/3}
e_sym – [in] (Green-Euler) strain tensor in symmetric representation
depsilon_sym – [in] depsilon = (grad_du + grad_du^T)/2
dPsi_plus – [out] dPsi^+
- Returns:
An error code: 0 - success, otherwise - failure
-
int RatelComputeDegradedFdSFTranspose_NeoHookean(CeedScalar J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk, CeedScalar mu, CeedScalar Jm1, CeedScalar J_pow, CeedScalar eta, bool use_offdiag, CeedScalar phi, CeedScalar dphi, const CeedScalar e_sym[6], const CeedScalar grad_du[3][3], CeedScalar depsilon_sym[6], CeedScalar FdSFTranspose_degr[3][3])¶
Compute F*dS_degr*F^T for neo-Hookean damage hyperelasticity in current configuration.
- Parameters:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk – [in] Bulk modulus
mu – [in] Shear modulus
Jm1 – [in] J - 1
J_pow – [in] J^{-2/3}
eta – [in] eta
use_offdiag – [in] offdiagonal term (bool)
phi – [in] damage field
dphi – [in] increment of phi
e_sym – [in] Green Euler strain, in symmetric representation
grad_du – [in] Gradient of incremental change in u
depsilon_sym – [out] depsilon = (grad_du + grad_du^T)/2
FdSFTranspose_degr – [out] F*dS_degr*F^T needed for computing df1 in current configuration
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageStrainEnergy_NeoHookean(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute (degraded) strain energy for Neo-hookean hyperelasticity.
- Parameters:
ctx – [in] QFunction context holding RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - qdata
2 - u (4 components)
3 - 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 ElasticityDamageDiagnostic_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 RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - qdata
2 - u (four components: 3 displacement components, 1 scalar damage field)
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 ElasticityDamageDualDiagnostic_NeoHookean(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute dual space diagnostic values for NeoHookean hyperelasticity with damage.
- 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 ElasticityDamageResidual_ut_NeoHookeanCurrent(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
1 - u_t (four components: 3 displacement components, 1 scalar damage field)
out – [out] Output arrays
0 - action on u_t
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageResidual_NeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute residual for Neo-hookean hyperelasticity current conf.
- 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 ElasticityDamageJacobian_NeoHookeanCurrent(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute jacobian for Neo-hookean hyperelasticity initial conf.
- Parameters:
ctx – [in] QFunction context, holding
RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - volumetric qdata
1 - Current state values
2 - Stored values
3 - du (four components: 3 displacement components, 1 damage field)
4 - du_g gradient of du with respect to reference coordinates
out – [out] Output arrays
0 - action on du
1 - action on du_g
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageResidual_ut_NeoHookeanInitial(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
1 - u_t (four components: 3 displacement components, 1 scalar damage field)
out – [out] Output arrays
0 - action on u_t
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamageResidual_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute residual for Neo-hookean hyperelasticity initial conf.
- 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 ElasticityDamageJacobian_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute jacobian for Neo-hookean hyperelasticity initial conf.
- Parameters:
ctx – [in] QFunction context, holding
RatelElasticityDamageParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - volumetric qdata
1 - Current state values
2 - Stored values
3 - du (four components: 3 displacement components, 1 damage field)
4 - du_g gradient of du with respect to reference coordinates
out – [out] Output arrays
0 - action on du
1 - action on du_g
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamagePlatenResidual_NeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar P_degr[3][3])¶
Compute platens residual for Neo-hookean hyperelasticity initial conf.
- 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
P_degr – [out] Degraded stress tensor
- Returns:
An error code: 0 - success, otherwise - failure
-
int ElasticityDamagePlatenJacobian_NeoHookeanInitial(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar *const *out, CeedScalar dXdx[3][3], CeedScalar dP_degr[3][3])¶
Compute platens jacobian for Neo-hookean hyperelasticity initial conf.
- Parameters:
ctx – [in] QFunction context, holding
RatelElasticityDamageParams
Q – [in] Number of quadrature points
i – [in] Index
in – [in] Input arrays
0 - volumetric qdata
2 - Stored values
3 - du (four components: 3 displacement components, 1 damage field)
4 - du_g gradient of du with respect to reference coordinates
out – [out] Output arrays
0 - initializing dv
dXdx – [out] dXdx
dP_degr – [out] Linearization of degraded stress tensor
- Returns:
An error code: 0 - success, otherwise - failure
-
int PlatenBCsResidualElasticityDamage_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute platen residual for Neo-hookean hyperelasticity initial conf.
- 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 PlatenBCsJacobianElasticityDamage_NeoHookeanInitial(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Evaluate platen Jacobian for Neo-hookean hyperelasticity initial conf.
- 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
-
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 J_dVdJ, CeedScalar bulk, CeedScalar *tau_vol_sym)¶
Compute volumetric Kirchoff tau for single field isochoric hyperelasticity.
tau_vol = (bulk * J dV/dJ) I
- Parameters:
J_dVdJ – [in] J dV/dJ
bulk – [in] Bulk modulus
tau_vol_sym – [out] Volumetric Kirchoff tau
- Returns:
An error code: 0 - success, otherwise - failure
-
int RatelVolumetricSecondKirchhoffStress(CeedScalar J_dVdJ, CeedScalar bulk, 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:
J_dVdJ – [in] J dV/dJ
bulk – [in] Bulk modulus
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 J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk – [in] Bulk modulus
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 J_dVdJ, CeedScalar J2_d2VdJ2, CeedScalar bulk, 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:
J_dVdJ – [in] J dV/dJ
J2_d2VdJ2 – [in] J^2 d^2V/dJ^2
bulk – [in] Bulk modulus
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 PoroElasticityResidual(void *ctx, CeedInt Q, RatelComputef1_Poroelastic compute_f1_poroelastic, RatelComputeg1_Poroelastic compute_g1_poroelastic, bool has_state_values, bool has_stored_values, CeedInt num_active_field_eval_modes, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute poroelasticity residual evaluation.
- Parameters:
ctx – [in] QFunction context, unused
Q – [in] Number of quadrature points
compute_f1_poroelastic – [in] Function to compute action of f1
compute_g1_poroelastic – [in] Function to compute action of g1
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 f1 term (displacement field)output_data_offset + 1
- action of QFunction on g0 term (pressure field)output_data_offset + 2
- action of QFunction on g1 term (pressure field)
- Returns:
An error code: 0 - success, otherwise - failure
-
int PoroElasticityJacobian(void *ctx, CeedInt Q, RatelComputedf1_fwd_Poroelastic compute_df1_poroelastic, RatelComputedg0_fwd_Poroelastic compute_dg0_poroelastic, RatelComputedg1_fwd_Poroelastic compute_dg1_poroelastic, bool has_state_values, bool has_stored_values, CeedInt num_active_field_eval_modes, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute poroelasticity Jacobian evaluation.
- Parameters:
ctx – [in] QFunction context, holding common parameters and model parameters
Q – [in] Number of quadrature points
compute_df1_poroelastic – [in] Function to compute action of df1
compute_dg0_poroelastic – [in] Function to compute action of dg0
compute_dg1_poroelastic – [in] Function to compute action of dg1
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
- Returns:
An error code: 0 - success, otherwise - failure
-
int f1_PoroElasticityLinear(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 poroelasticity.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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 = (lambda_d trace_e I) + (2 mu_d e_sym) - (alpha p I)
trace_e – [out] Divergence of u = trace_e needed for computing g0 function
- Returns:
An error code: 0 - success, otherwise - failure
-
int PoroElasticityResidual_PoroElasticityLinear_ut(void *ctx, const CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute
g0
with u_t and p_t for linear poroelasticity.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - volumetric qdata
1 - gradient of u_t with respect to reference coordinates
2 - p_t
out – [out] Output arrays
0 - action on displacement field (it is 0)
1 - action on pressure field (q, g0) where
g0 = pt /M + alpha div(ut)
- Returns:
An error code: 0 - success, otherwise - failure
-
int g1_PoroElasticityLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar dXdx[3][3], CeedScalar *const *out, CeedScalar g1[3])¶
Compute
g1
for linear poroelasticity.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
Q – [in] Number of quadrature points
i – [in] Current quadrature point
in – [in] Input arrays
3 - gradient of p with respect to reference coordinates
dXdx – [in] Coordinate transformation
out – [out] Output arrays, unused
g1 – [out]
g1 = varkappa grad_p
- Returns:
An error code: 0 - success, otherwise - failure
-
int df1_PoroElasticityLinear(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 linear poroelasticity.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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 = (lambda_d trace_de I) + (2 mu_d de_sym) - (alpha dp I)
trace_de – [out] Linearization of grad_u: div_du = trace_de
Cinv_contract_dE – [out]
C_inv:dE
, unused for linear poroelasticity
- Returns:
An error code: 0 - success, otherwise - failure
-
int dg0_PoroElasticityLinear(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 linear poroelasticity.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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 linear poroelasticityout – [out] Output arrays, unused
dg0 – [out]
dg0 = shift_v(dp/M + alpha trace_de )
- Returns:
An error code: 0 - success, otherwise - failure
-
int dg1_PoroElasticityLinear(void *ctx, const CeedInt Q, const CeedInt i, const CeedScalar *const *in, CeedScalar dXdx[3][3], const CeedScalar trace_de, const CeedScalar Cinv_contract_dE, CeedScalar *const *out, CeedScalar dg1[3])¶
Compute linearization of
g1
for linear poroelasticity.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
Q – [in] Number of quadrature points
i – [in] Current quadrature point
in – [in] Input arrays
3 - gradient of incremental change to p with respect to reference coordinates
dXdx – [in] Coordinate transformation
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 linear poroelasticityout – [out] Output arrays, unused
dg1 – [out]
dg1 = varkappa grad_dp
- Returns:
An error code: 0 - success, otherwise - failure
-
int PoroElasticityResidual_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute residual for linear poroelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
Q – [in] Number of quadrature points
in – [in] Input arrays
out – [out] Output arrays
- Returns:
An error code: 0 - success, otherwise - failure
-
int PoroElasticityJacobian_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Evaluate Jacobian for linear poroelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
Q – [in] Number of quadrature points
in – [in] Input arrays
out – [out] Output arrays
- Returns:
An error code: 0 - success, otherwise - failure
-
int f1_PoroElasticityLinear_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 poroelasticity platen BCs.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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 = (lambda_d trace_e I) + (2 mu_d e_sym) - (alpha p I)
- Returns:
An error code: 0 - success, otherwise - failure
-
int df1_PoroElasticityLinear_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 linear poroelasticity.- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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 = (lambda_d trace_de I) + (2 mu_d de_sym) - (alpha dp I)
- Returns:
An error code: 0 - success, otherwise - failure
-
int PlatenBCsResidual_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute platen residual for linear poroelasticity.
- 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_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Evaluate platen Jacobian for linear poroelasticity.
- 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_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute strain energy for linear poroelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute projected diagnostic values for linear poroelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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 PoroElasticityPC_uu_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute displacement block for pMG preconditioner for linear poroelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
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 PoroElasticityPC_pp_PoroElasticityLinear(void *ctx, CeedInt Q, const CeedScalar *const *in, CeedScalar *const *out)¶
Compute pressure block for pMG preconditioner for linear poroelasticity.
- Parameters:
ctx – [in] QFunction context, holding
RatelLinearPoroElasticityParams
Q – [in] Number of quadrature points
in – [in] Input arrays
0 - qdata
1 - incremental change of p
2 - gradient of p
out – [out] Output arrays
0 - action of QFunction for pressure field (dg0)
1 - action of QFunction for pressure field (dg1)
- 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_ElasticityMPMNeoHookeanCurrent(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_ElasticityMPMNeoHookeanCurrent(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
-
PetscErrorCode RatelMaterialCreate_ElasticityMPMNeoHookeanDamageCurrent(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_ElasticityMPMNeoHookeanDamageCurrent(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_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
-
PetscErrorCode RatelMaterialCreate_ElasticityNeoHookeanDamageCurrent(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_ElasticityNeoHookeanDamageCurrent(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_ElasticityNeoHookeanDamageInitial(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_ElasticityNeoHookeanDamageInitial(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
-
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, 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
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_MixedOgden(RatelMaterial material, CeedScalar nu, CeedScalar *m, CeedScalar *alpha, PetscInt num_ogden_parameters, CeedScalar rho, CeedScalar nu_primal, CeedScalar nu_primal_pc, CeedInt sign_pp, 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
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 Ogden parameters
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialParamsContextCreate_MixedOgden(RatelMaterial material, CeedQFunctionContext *ctx)¶
Build
CeedQFunctionContext
for mixed 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_MixedOgden(RatelMaterial material)¶
Setup data for
CeedQFunctionContext
for smoother with mixed 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_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_MMS_PoroElasticityLinear(RatelMaterial material, CeedScalar A0, CeedScalar shift, CeedScalar scale, CeedQFunctionContext *ctx)¶
Set
CeedQFunctionContext
data and register fields for linear poroelasticity 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 poroelasticity MMS parameters
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMMSParamsContextCreate_PoroElasticityLinear(RatelMaterial material, CeedQFunctionContext *ctx)¶
Build
CeedQFunctionContext
for linear poroelasticity MMS parameters.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
to setup model parameters contextctx – [out]
CeedQFunctionContext
for linear poroelasticity 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
-
static PetscErrorCode RatelCeedParamsContextCreate_PoroElasticityLinear(RatelMaterial material, CeedScalar rho, CeedScalar lambda_d, CeedScalar mu_d, CeedScalar bulk_d, CeedScalar bulk_s, CeedScalar bulk_f, CeedScalar phi, CeedScalar eta_f, CeedScalar varkappa_0, CeedInt sign_pp, CeedQFunctionContext *ctx)¶
Set
CeedQFunctionContext
data and register fields for Linear Poroelasticity parameters.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
to setup model params contextrho – [in] Density for scaled mass matrix
lambda_d – [in] First Lame parameter for drained state
mu_d – [in] Shear Modulus for drained state
bulk_d – [in] Bulk Modulus for drained state
bulk_s – [in] Bulk Modulus for solid
bulk_f – [in] Bulk Modulus for fluid
phi – [in] Porosity
eta_f – [in] Fluid viscosity
varkappa_0 – [in] Intrinsic Permeability
sign_pp – [in] Sign to use in pp block
ctx – [out]
CeedQFunctionContext
for Linear Poroelasticity parameters
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialParamsContextCreate_PoroElasticityLinear(RatelMaterial material, CeedQFunctionContext *ctx)¶
Build
CeedQFunctionContext
with Linear Poroelasticity parameters.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
to setup model params contextctx – [out]
CeedQFunctionContext
for Linear Poroelasticity parameters
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialParamsSmootherDataSetup_PoroElasticityLinear(RatelMaterial material)¶
Setup data for
CeedQFunctionContext
for smoother with Linear Poroelasticity 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_PoroElasticityLinear(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_PoroElasticityLinear(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_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 want 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, CeedOperator op_dual_nodal_scale)¶
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
suboperatorop_dual_nodal_scale – [out] Composite dual space nodal scale
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 RatelMaterialSetupForcingEnergySuboperator_FEM(RatelMaterial material, DM dm_energy, CeedOperator op_external_energy)¶
Add forcing energy to external energy operator.
Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_energy – [in]
DM
for external energy computationop_external_energy – [out] Composite external energy
CeedOperator
to add energy of body force sub-operators
- 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 RatelMaterialGetPointFields(RatelMaterial material, CeedInt *num_point_fields, const CeedInt **point_field_sizes, const char ***point_field_names)¶
Get point fields for a
RatelMaterial
object.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextnum_point_fields – [out] Number of point fields in
RatelMaterial
, orNULL
point_field_sizes – [in] Sizes of each point field in
RatelMaterial
, orNULL
point_field_names – [in] Names of each point field in
RatelMaterial
, orNULL
- 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 RatelMaterialGetInitialStateData(RatelMaterial material, CeedOperator op_residual_u, CeedElemRestriction *restriction, CeedVector *values)¶
Get
CeedElemRestriction
andCeedVector
objects corresponding to state data prior to 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 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 RatelMaterialGetPointData(RatelMaterial material, CeedOperator op_residual_u, CeedInt *num_point_fields, CeedElemRestriction **restrictions, CeedVector **values)¶
Get
CeedElemRestriction
andCeedVector
objects corresponding to point data from residual evaluation.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [in] Composite residual u term
CeedOperator
num_point_fields – [out] Number of point fields defined for material
restrictions – [out]
CeedElemRestriction
objects for point fields from residual operatorvalues – [out]
CeedVector
objects for point fields from residual operator
- 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, CeedOperator op_dual_nodal_scale)¶
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
suboperatorop_dual_nodal_scale – [out] Composite dual space nodal scale
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, CeedSize *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, CeedInt field_index, 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
contextfield_index – [in] Index of field to interpolate
op_mesh_to_swarm – [in] Composite
CeedOperator
for mesh to swarm interpolation
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupMigratePointsSuboperator(RatelMaterial material, CeedOperator op_migrate_points)¶
Setup the suboperator for migrating points in a
RatelMaterial
.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_migrate_points – [in] Composite
CeedOperator
for migrating points
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMPMMeshToSwarm(Ratel ratel, Vec delta_U, PetscReal time)¶
Interpolate mesh fields to material points, updating the
DMSwarm
with the result.Collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
contextdelta_U – [in] Global mesh solution vector
time – [in] Current time
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupSwarmToMeshSuboperators_MPM(RatelMaterial material, CeedOperator op_swarm_to_mesh, CeedOperator op_mass)¶
Add material suboperators for swarm-to-mesh projection.
Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
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
-
static PetscErrorCode RatelMaterialSetupUpdateVolumeSuboperator_MPM(RatelMaterial material, CeedVector volume_ceed, CeedOperator op_volume)¶
Compute
CeedOperator
for updating MPM volume.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextvolume_ceed – [in]
CeedVector
holding previous volumeop_volume – [out]
CeedOperator
for updating volume
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMPMUpdateVolume(Ratel ratel, Vec U, PetscReal time)¶
Update MPM volume.
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 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 delta_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
contextdelta_U – [in] Global mesh solution vector
time – [in] Current time
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMPMSetPointFields(Ratel ratel)¶
Set material point fields.
Collective across MPI processes.
- Parameters:
ratel – [in]
Ratel
context
- 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 RatelMaterialSetupSetPointFieldsSuboperator_MPM(RatelMaterial material, CeedOperator op_set_point_fields)¶
Setup material properties for
RatelMaterial
by writing values from material context toDMSwarm
fields.Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_set_point_fields – [in]
CeedOperator
to setup
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetPointFieldsVectors_MPM(RatelMaterial material)¶
Set point fields vectors for
RatelMaterial
usingDMSwarm
field pointers.Not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
context
- 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 RatelMaterialSetupJacobianBlockSuboperator_MPM(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 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
-
PetscErrorCode RatelMaterialSetupForcingEnergySuboperator_MPM(RatelMaterial material, DM dm_energy, CeedOperator op_external_energy)¶
Add point-wise forcing energy to external energy operator.
Collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextdm_energy – [in]
DM
for external energy computationop_external_energy – [out] Composite external energy
CeedOperator
to add energy of body force sub-operators
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialSetupStrainEnergySuboperator_MPM(RatelMaterial material, DM dm_energy, CeedOperator op_strain_energy)¶
Setup strain energy
CeedOperator
forRatelMaterial
, possibly with material parameters at points.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_MPM(RatelMaterial material, DM dm_projected_diagnostic, DM dm_dual_diagnostic, CeedOperator op_mass_diagnostic, CeedOperator op_projected_diagnostic, CeedOperator op_dual_diagnostic, CeedOperator op_dual_nodal_scale)¶
Setup diagnostic value
CeedOperator
forRatelMaterial
, possibly with material parameters at points.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
suboperatorop_dual_nodal_scale – [out] Composite dual space nodal scale
CeedOperator
to addRatelMaterial
suboperator
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMaterialAcceptState_MPM(RatelMaterial material, CeedOperator op_residual_u, CeedOperator op_state)¶
Accept material state update after
TS
update for MPM.not collective across MPI processes.
- Parameters:
material – [in]
RatelMaterial
contextop_residual_u – [in] Composite residual
CeedOperator
with old state dataop_state – [inout] Composite state
CeedOperator
to update
- Returns:
An error code: 0 - success, otherwise - failure
-
PetscErrorCode RatelMPMAcceptState(Ratel ratel, CeedOperator op_residual)¶
Accept MPM state update after
TS
update.not collective across MPI processes.
- Parameters:
ratel – [in]
ratel
contextop_residual – [inout] Composite residual
CeedOperator
to update
- 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_GEOMETRY_MPM_SIZE 10¶
-
Q_DATA_VOLUMETRIC_SYMMETRIC_GEOMETRY_MPM_SIZE 7¶
-
Q_DATA_VOLUMETRIC_SYMMETRIC_GEOMETRY_SIZE 7¶
-
Q_DATA_VOLUMETRIC_GEOMETRY_SIZE 10¶
-
NUM_COMPONENTS_DIAGNOSTIC_Dual 1¶
-
NUM_COMPONENTS_DIAGNOSTIC_Elasticity 16¶
-
NUM_COMPONENTS_ELASTICITY_DIAGNOSTIC_Dual 2¶
-
FLOPS_Tau_IsochoricMooneyRivlin (FLOPS_Tau_vol + FLOPS_Tau_iso_MooneyRivlin + 3)¶
-
FLOPS_S_IsochoricMooneyRivlin (FLOPS_S_iso_MooneyRivlin + FLOPS_S_vol)¶
-
FLOPS_dS_IsochoricMooneyRivlin (1 + FLOPS_dS_vol + FLOPS_dS_iso_MooneyRivlin + FLOPS_MatMatMatAddSymmetric)¶
-
FLOPS_FdSFTranspose_IsochoricMooneyRivlin (FLOPS_FdSFTranspose_iso_MooneyRivlin + FLOPS_FdSFTranspose_vol + 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)¶
-
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)¶
-
FLOPS_StrainEnergy_IsochoricNeoHookean (FLOPS_V + 9 + FLOPS_J_pow)¶
-
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)¶
-
FLOPS_Tau_IsochoricOgden (FLOPS_Tau_vol + FLOPS_Tau_iso_Ogden + 3)¶
-
FLOPS_S_IsochoricOgden (FLOPS_S_iso_Ogden + FLOPS_S_vol)¶
-
FLOPS_dS_IsochoricOgden (1 + FLOPS_dS_vol + FLOPS_dS_iso_Ogden + FLOPS_MatMatMatAddSymmetric)¶
-
FLOPS_FdSFTranspose_IsochoricOgden (FLOPS_FdSFTranspose_iso_Ogden + FLOPS_FdSFTranspose_vol + 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_Tau_iso_MooneyRivlin (FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + 9 + FLOPS_MatMatMultSymmetric + 2 * FLOPS_MatMatAddSymmetric + 24 + \
FLOPS_MatMatContractSymmetric + 15)¶
-
FLOPS_S_iso_MooneyRivlin (FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + FLOPS_MatMatMultSymmetric + 16 + 2 * FLOPS_MatMatAddSymmetric + 18 + \
FLOPS_MatMatContractSymmetric + 7)¶
-
FLOPS_dS1_iso_MooneyRivlin (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + 2 * FLOPS_MatTrace + FLOPS_MatDeviatoricSymmetric + \
FLOPS_MatMatMultSymmetric + 3 + 2 * FLOPS_MatMatAddSymmetric + 24 + 20)¶
-
FLOPS_dS2_iso_MooneyRivlin (24 + FLOPS_MatMatAddSymmetric + 12 + 5)¶
-
FLOPS_dS3_iso_MooneyRivlin (2 * FLOPS_MatMatContractSymmetric + FLOPS_MatMatAddSymmetric + 12 + 22)¶
-
FLOPS_dS_iso_MooneyRivlin (FLOPS_dS1_iso_MooneyRivlin + FLOPS_dS2_iso_MooneyRivlin + FLOPS_dS3_iso_MooneyRivlin + 18)¶
-
FLOPS_FdSFTranspose_iso_MooneyRivlin (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)¶
-
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)¶
-
FLOPS_Tau_iso_Ogden (9 + FLOPS_EigenVectorOuterMult + 36)¶
-
FLOPS_S_iso_Ogden (FLOPS_MatComputeEigensystemSymmetric + FLOPS_PrincipalStretch + 3 * FLOPS_Log1pSeries + 6 + 9 * FLOPS_Expm1Series + 42 + \
FLOPS_EigenVectorOuterMult + 36)¶
-
FLOPS_dS_iso_Ogden (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + FLOPS_MatComputeEigensystemSymmetric + \
FLOPS_PrincipalStretch + FLOPS_PrincipalStretch_fwd + 3 * FLOPS_Log1pSeries + 9 + 18 * FLOPS_Expm1Series + 142 + FLOPS_EigenVectorOuterMult + \
FLOPS_EigenVectorOuterMult_fwd + 105)¶
-
FLOPS_FdSFTranspose_iso_Ogden (6 + FLOPS_MatTrace + 2 * FLOPS_MatMatMult + 12 + FLOPS_GreenEulerStrain_fwd + FLOPS_PrincipalStretch + FLOPS_PrincipalStretch_fwd
+ \
3 *
FLOPS_Log1pSeries + 9 + FLOPS_EigenVectorOuterMult + FLOPS_EigenVectorOuterMult_fwd + +6 * FLOPS_MatMatMult + 3 * FLOPS_MatMatAdd+ \
3 *
FLOPS_MatMatMatAddSymmetric + 21 + 57 + 126)¶
-
FLOPS_PsiPlus_Linear (FLOPS_MatMatContractSymmetric + 5)¶
-
FLOPS_PsiPlus_Linear_fwd (3 + FLOPS_ScalarMatMultSymmetric + 3 + FLOPS_MatMatContractSymmetric)¶
-
FLOPS_DegradedStress_Linear (9 + FLOPS_ScalarMatMultSymmetric + 3)¶
-
FLOPS_DegradedStress_Linear_fwd (9 + FLOPS_ScalarMatMultSymmetric + 3 + 6 + FLOPS_ScalarMatMultSymmetric + 3 + FLOPS_MatMatAddSymmetric + 6)¶
-
FLOPS_JACOBIAN_Elasticity_Damage (FLOPS_MatMatMult + FLOPS_LinearStrain_fwd + 2 * FLOPS_MatTrace + 2 * FLOPS_MatDeviatoricSymmetric + FLOPS_DegradedStress_Linear_fwd + \
FLOPS_MatMatMult + 9 + FLOPS_MatVecMult + 4 + FLOPS_PsiPlus_Linear_fwd + 18 + 3 * 6)¶
-
FLOPS_JACOBIAN_Elasticity_Damage_Platen (FLOPS_MatMatMult + FLOPS_LinearStrain_fwd + 2 * FLOPS_MatTrace + 2 * FLOPS_MatDeviatoricSymmetric + FLOPS_DegradedStress_Linear_fwd)¶
-
NUM_COMPONENTS_ELASTICITY_LINEAR_DIAGNOSTIC_Dual 2¶
-
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_DIAGNOSTIC_MixedElasticity 16¶
-
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)¶
-
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)¶
-
FLOPS_Tau_MixedOgden (FLOPS_Tau_vol_mixed + FLOPS_Tau_iso_Ogden + 3)¶
-
FLOPS_S_MixedOgden (FLOPS_S_iso_Ogden + FLOPS_S_vol_mixed)¶
-
FLOPS_dS_MixedOgden (1 + FLOPS_dS_vol_mixed + FLOPS_dS_iso_Ogden + FLOPS_MatMatMatAddSymmetric)¶
-
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_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_MixedOgden + FLOPS_dS_MixedOgden + \
FLOPS_MatMatMultPlusMatMatMult)¶
-
FLOPS_dg0_MixedOgden_Initial (FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + 10)¶
-
FLOPS_JACOBIAN_MixedOgdenInitial (FLOPS_df1_MixedOgden_Initial + FLOPS_dXdxwdetJ + FLOPS_dg0_MixedOgden_Initial + 1)¶
-
FLOPS_JACOBIAN_Block_uu_MixedOgdenInitial (FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_GreenEulerStrain + FLOPS_CInverse + FLOPS_S_MixedOgden + FLOPS_dS_MixedOgden + \
FLOPS_MatMatMultPlusMatMatMult + FLOPS_dXdxwdetJ)¶
-
FLOPS_JACOBIAN_Block_pp_MixedOgdenInitial (FLOPS_MatDetAM1 + 8)¶
-
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)¶
-
FLOPS_Tau_MooneyRivlin (FLOPS_MatTrace + 9 + FLOPS_MatMatMultSymmetric + 2 * FLOPS_MatMatAddSymmetric + 18 + FLOPS_Tau_vol + 5)¶
-
FLOPS_S_MooneyRivlin (FLOPS_S_vol + FLOPS_MatMatMultSymmetric + FLOPS_MatTrace + 2 * FLOPS_MatMatAddSymmetric + 12 + 5)¶
-
FLOPS_dS_MooneyRivlin (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + FLOPS_dS_vol + FLOPS_MatTrace
+ \
2 *
FLOPS_MatMatAddSymmetric + 12 + 4)¶
-
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_MPM_NeoHookean 16¶
-
NUM_COMPONENTS_STATE_MPM_NeoHookeanCurrent 0¶
-
NUM_COMPONENTS_STORED_MPM_NeoHookeanCurrent 16¶
-
NUM_ACTIVE_FIELD_EVAL_MODES_MPM_NeoHookeanCurrent 1¶
-
NUM_POINTS_FIELDS_MPM_NeoHookeanCurrent 2¶
-
FLOPS_df1_MPM_NH_Current (2 * FLOPS_MatMatMult + FLOPS_FdSFTranspose_NeoHookean + FLOPS_MatMatAdd)¶
-
FLOPS_JACOBIAN_MPM_NeoHookeanCurrent (FLOPS_df1_MPM_NH_Current + FLOPS_dXdxwdetJ)¶
-
FLOPS_JACOBIAN_MPM_NeoHookeanCurrent_Damage (2 + FLOPS_Degraded_Tau_NeoHookean + FLOPS_MatMatMult + FLOPS_J_dVdJ + FLOPS_J2_d2VdJ2 + FLOPS_MatMatMult + \
FLOPS_Degraded_FdSFTranspose_NeoHookean + FLOPS_MatMatAdd + FLOPS_MatMatMult + 10 + FLOPS_MatVecMult + 4 + 1 + \
FLOPS_PsiPlus_NeoHookeanCurrent_fwd + 1 + 11 + 2 + 5 + 6)¶
-
FLOPS_Tau_NeoHookean (FLOPS_Tau_vol + 9)¶
-
FLOPS_S_NeoHookean (FLOPS_S_vol + FLOPS_MatMatMultSymmetric + FLOPS_MatMatAddSymmetric + 6)¶
-
FLOPS_dS_NeoHookean (FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_MatMatContractSymmetric + FLOPS_dS_vol + FLOPS_MatMatAddSymmetric + 6)¶
-
FLOPS_FdSFTranspose_NeoHookean (6 + FLOPS_MatTrace + FLOPS_FdSFTranspose_vol + FLOPS_MatMatAddSymmetric + 7)¶
-
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)¶
-
NUM_COMPONENTS_DIAGNOSTIC_NeoHookean_Damage_Dual 2¶
-
NUM_COMPONENTS_DIAGNOSTIC_NeoHookean_Damage 19¶
-
NUM_COMPONENTS_STATE_NeoHookean_Damage 1¶
-
NUM_ACTIVE_FIELD_EVAL_MODES_NeoHookean_Damage 2¶
-
NUM_U_t_FIELD_EVAL_MODES_NeoHookean_Damage 1¶
-
FLOPS_PsiPlus_NeoHookean (FLOPS_MatTraceSymmetric + FLOPS_StrainEnergy_IsochoricNeoHookean + 2)¶
-
FLOPS_PsiPlus_NeoHookeanInitial_fwd (FLOPS_GreenLagrangeStrain + FLOPS_CInverse + FLOPS_S_IsochoricNeoHookean + FLOPS_S_vol + FLOPS_MatMatAddSymmetric + FLOPS_MatMatContractSymmetric)¶
-
FLOPS_Degraded_S_NeoHookean (7 + FLOPS_CInverse + FLOPS_S_IsochoricNeoHookean + FLOPS_S_vol + FLOPS_MatMatAddSymmetric)¶
-
FLOPS_Degraded_dS_NeoHookean (7 + FLOPS_CInverse + FLOPS_GreenLagrangeStrain_fwd + FLOPS_CInverse_fwd + FLOPS_S_IsochoricNeoHookean + FLOPS_S_vol + \
FLOPS_dS_IsochoricNeoHookean + FLOPS_dS_vol + 3 * FLOPS_MatMatAddSymmetric)¶
-
FLOPS_Degraded_Tau_NeoHookean (FLOPS_Tau_IsochoricNeoHookean + FLOPS_Tau_vol + 6)¶
-
FLOPS_PsiPlus_NeoHookeanCurrent_fwd (FLOPS_Tau_IsochoricNeoHookean + FLOPS_Tau_vol + 3 + FLOPS_MatMatContractSymmetric)¶
-
FLOPS_Degraded_FdSFTranspose_NeoHookean (FLOPS_FdSFTranspose_iso_NeoHookean + FLOPS_FdSFTranspose_vol + 2 * FLOPS_MatMatAddSymmetric + FLOPS_Tau_IsochoricNeoHookean + FLOPS_Tau_vol + 18)¶
-
FLOPS_JACOBIAN_NeoHookeanCurrent_Damage (2 * FLOPS_MatMatMult + FLOPS_Degraded_Tau_NeoHookean + FLOPS_Degraded_FdSFTranspose_NeoHookean + FLOPS_MatMatAdd + FLOPS_MatMatMult + 9 + \
FLOPS_MatVecMult + 5 + FLOPS_PsiPlus_NeoHookeanCurrent_fwd + 14 + 33)¶
-
FLOPS_JACOBIAN_NeoHookeanInitial_Damage (3 + FLOPS_MatMatMult + 3 + FLOPS_MatDetAM1 + FLOPS_Degraded_S_NeoHookean + FLOPS_Degraded_dS_NeoHookean + FLOPS_MatMatMultPlusMatMatMult
+ \
+
FLOPS_MatMatMult + FLOPS_MatVecMult + 5 + FLOPS_GreenLagrangeStrain_fwd + FLOPS_PsiPlus_NeoHookeanInitial_fwd + 14 + 33)¶
-
FLOPS_JACOBIAN_NeoHookeanInitial_Damage_Platen (FLOPS_MatMatMult + FLOPS_MatDetAM1 + FLOPS_S_IsochoricNeoHookean + FLOPS_dS_IsochoricNeoHookean + FLOPS_MatMatMultPlusMatMatMult)¶
-
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¶
-
NUM_COMPONENTS_STATE_PoroElasticityLinear 0¶
-
NUM_COMPONENTS_STORED_PoroElasticityLinear 0¶
-
NUM_ACTIVE_FIELD_EVAL_MODES_PoroElasticityLinear_u 1¶
-
NUM_ACTIVE_FIELD_EVAL_MODES_PoroElasticityLinear_p 2¶
-
NUM_ACTIVE_FIELD_EVAL_MODES_PoroElasticityLinear (NUM_ACTIVE_FIELD_EVAL_MODES_PoroElasticityLinear_u + NUM_ACTIVE_FIELD_EVAL_MODES_PoroElasticityLinear_p)¶
-
NUM_U_t_FIELD_EVAL_MODES_PoroElasticityLinear_u 1¶
-
NUM_U_t_FIELD_EVAL_MODES_PoroElasticityLinear_p 1¶
-
NUM_COMPONENTS_DIAGNOSTIC_PoroElasticityLinear 17¶
-
FLOPS_df1_PoroElasticityLinear (FLOPS_MatMatMult + FLOPS_LinearStrain_fwd + FLOPS_MatTrace + FLOPS_PoroElasticityLinearStress_fwd)¶
-
FLOPS_dg0_PoroElasticityLinear (4)¶
-
FLOPS_dg1_PoroElasticityLinear (FLOPS_MatTransposeVecMult + 4)¶
-
FLOPS_JACOBIAN_PoroElasticityLinear (FLOPS_df1_PoroElasticityLinear + FLOPS_dXdxwdetJ + FLOPS_dg0_PoroElasticityLinear + FLOPS_dg1_PoroElasticityLinear + FLOPS_MatVecMult + 3 + 1)¶
-
FLOPS_JACOBIAN_Block_uu_PoroElasticityLinear (FLOPS_MatMatMult + FLOPS_LinearStrain_fwd + FLOPS_PoroElasticityLinearStress_fwd + FLOPS_MatTrace + FLOPS_MatMatTransposeMult + 9)¶
-
FLOPS_JACOBIAN_Block_pp_PoroElasticityLinear (FLOPS_MatTransposeVecMult + FLOPS_MatVecMult + 4)¶
-
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)
-
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 RatelMixedOgdenElasticityParams¶
- #include <mixed-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 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 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 RatelMMSPoroElasticityLinearParams¶
- #include <mms-poroelasticity-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 E¶
Young’s 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
-
RatelLinearElasticityParams elasticity_params¶
Elastic model parameters.
-
RatelLinearPlasticityParams plasticity_params¶
Plastic model parameters.
-
RatelLinearElasticityParams elasticity_params¶
-
struct RatelLinearPoroElasticityParams¶
- #include <poroelasticity-linear.h>
PoroElastic model data.
Public Members
-
CeedScalar common_parameters[RATEL_NUMBER_COMMON_PARAMETERS]¶
Common properties.
-
CeedInt sign_pp¶
To change the sign in pp block pc.
-
CeedScalar lambda_d¶
Lame parameter - user.
-
CeedScalar mu_d¶
Shear modulus - user.
-
CeedScalar two_mu_d¶
Shear modulus multiplied by 2.
-
CeedScalar bulk_d¶
Bulk drained - user.
-
CeedScalar bulk_f¶
Bulk modulus fluid - user.
-
CeedScalar bulk_s¶
Bulk solid - user.
-
CeedScalar phi¶
Porosity - user.
-
CeedScalar eta_f¶
Fluid viscosity - user.
-
CeedScalar varkappa_0¶
Intrinsic permeability - user.
-
CeedScalar alpha¶
Biot’s coefficient.
-
CeedScalar M¶
Biot’s modulus.
-
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 RatelElasticityDamagePointFields¶
- #include <elasticity-damage.h>
Point fields for elasticity+damage.
Public Members
-
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.
-
CeedScalar fracture_toughness¶
-
struct RatelLinearElasticityPointFields¶
- #include <elasticity-linear.h>
Point fields for linear elasticity.
-
struct RatelNeoHookeanElasticityParams¶
- #include <mixed-neo-hookean.h>
Neo-Hookean model data.
-
struct RatelMMSMixedLinearElasticityParams¶
- #include <mms-elasticity-mixed-linear.h>
Mixed linear elasticity MMS parameters.
-
struct RatelNeoHookeanElasticityPointFields¶
- #include <neo-hookean.h>
Point fields for Neo-Hookean.