@@ -26,8 +26,8 @@ struct CeedData_ {
2626 CeedBasis basis_x , basis_u , basis_p ;
2727 CeedElemRestriction elem_restr_x , elem_restr_u , elem_restr_U_i ,
2828 elem_restr_p ;
29- CeedQFunction qf_residual , qf_error ;
30- CeedOperator op_residual , op_error ;
29+ CeedQFunction qf_residual , qf_jacobian , qf_error ;
30+ CeedOperator op_residual , op_jacobian , op_error ;
3131 CeedVector x_ceed , y_ceed ;
3232 CeedQFunctionContext pq2d_context ;
3333};
@@ -59,26 +59,23 @@ struct Physics_ {
5959 DARCY3DContext darcy3d_ctx ;
6060};
6161
62- // PETSc user data
63- typedef struct User_ * User ;
64- struct User_ {
65- MPI_Comm comm ;
66- Vec X_loc , Y_loc ;
67- CeedVector x_ceed , y_ceed ;
68- CeedOperator op_apply , op_error ;
69- CeedElemRestriction elem_restr_u ;
70- DM dm ;
71- Ceed ceed ;
72- AppCtx app_ctx ;
73- Physics phys ;
62+ // PETSc operator contexts
63+ typedef struct OperatorApplyContext_ * OperatorApplyContext ;
64+ struct OperatorApplyContext_ {
65+ MPI_Comm comm ;
66+ Vec X_loc , Y_loc ;
67+ CeedVector x_ceed , y_ceed ;
68+ CeedOperator op_apply ;
69+ DM dm ;
70+ Ceed ceed ;
7471};
7572
7673// Problem specific data
7774typedef struct {
78- CeedQFunctionUser setup_rhs , residual , setup_error , setup_true ,
79- setup_face_geo ;
80- const char * setup_rhs_loc , * residual_loc , * setup_error_loc ,
81- * setup_true_loc , * setup_face_geo_loc ;
75+ CeedQFunctionUser setup_rhs , residual , jacobian , setup_error ,
76+ setup_true , setup_face_geo ;
77+ const char * setup_rhs_loc , * residual_loc , * jacobian_loc ,
78+ * setup_error_loc , * setup_true_loc , * setup_face_geo_loc ;
8279 CeedQuadMode quadrature_mode ;
8380 CeedInt elem_node , dim , q_data_size_face ;
8481 PetscErrorCode (* setup_ctx )(Ceed , CeedData , Physics );
0 commit comments