xref: /libCEED/examples/solids/problems/mooney-rivlin.h (revision bc7bbd5dca53df9bb3e78c945912120808c904be)
1 #ifndef mooney_rivlin_h
2 #define mooney_rivlin_h
3 
4 #include <petsc.h>
5 #include "../include/structs.h"
6 
7 #ifndef PHYSICS_STRUCT_MR
8 #define PHYSICS_STRUCT_MR
9 typedef struct Physics_MR_ *Physics_MR;
10 struct Physics_MR_ {
11   // Material properties for MR
12   CeedScalar mu_1;
13   CeedScalar mu_2;
14   CeedScalar lambda;
15 };
16 #endif // PHYSICS_STRUCT_MR
17 
18 // Create context object
19 PetscErrorCode PhysicsContext_MR(MPI_Comm comm, Ceed ceed, Units *units,
20                                  CeedQFunctionContext *ctx);
21 PetscErrorCode PhysicsSmootherContext_MR(MPI_Comm comm, Ceed ceed,
22     CeedQFunctionContext ctx, CeedQFunctionContext *ctx_smoother);
23 
24 // Process physics options - Mooney-Rivlin
25 PetscErrorCode ProcessPhysics_MR(MPI_Comm comm, Physics_MR phys, Units units);
26 
27 #endif // mooney_rivlin_h
28