1 #include <ceed.h> 2 #include "../include/structs.h" 3 #include "../include/setup-libceed.h" 4 #include "../problems/problems.h" 5 #include "../problems/neo-hookean.h" 6 #include "../qfunctions/common.h" 7 #include "../qfunctions/linear.h" 8 #include "../qfunctions/manufactured-true.h" 9 10 ProblemData linear_elasticity = { 11 .setup_geo = SetupGeo, 12 .setup_geo_loc = SetupGeo_loc, 13 .q_data_size = 10, 14 .quadrature_mode = CEED_GAUSS, 15 .residual = ElasLinearF, 16 .residual_loc = ElasLinearF_loc, 17 .number_fields_stored = 0, 18 .jacobian = ElasLineardF, 19 .jacobian_loc = ElasLineardF_loc, 20 .energy = ElasLinearEnergy, 21 .energy_loc = ElasLinearEnergy_loc, 22 .diagnostic = ElasLinearDiagnostic, 23 .diagnostic_loc = ElasLinearDiagnostic_loc, 24 .true_soln = MMSTrueSoln, 25 .true_soln_loc = MMSTrueSoln_loc, 26 }; 27 28 PetscErrorCode SetupLibceedFineLevel_ElasLinear(DM dm, DM dm_energy, 29 DM dm_diagnostic, Ceed ceed, AppCtx app_ctx, CeedQFunctionContext phys_ctx, 30 PetscInt fine_level, PetscInt num_comp_u, PetscInt U_g_size, 31 PetscInt U_loc_size, CeedVector force_ceed, CeedVector neumann_ceed, 32 CeedData *data) { 33 PetscErrorCode ierr; 34 35 PetscFunctionBegin; 36 37 ierr = SetupLibceedFineLevel(dm, dm_energy, dm_diagnostic, ceed, app_ctx, 38 phys_ctx, linear_elasticity, 39 fine_level, num_comp_u, U_g_size, U_loc_size, 40 force_ceed, neumann_ceed, data); CHKERRQ(ierr); 41 42 PetscFunctionReturn(0); 43 }; 44 45 PetscErrorCode SetupLibceedLevel_ElasLinear(DM dm, Ceed ceed, AppCtx app_ctx, 46 PetscInt level, PetscInt num_comp_u, PetscInt U_g_size, PetscInt U_loc_size, 47 CeedVector fine_mult, CeedData *data) { 48 PetscErrorCode ierr; 49 50 PetscFunctionBegin; 51 52 ierr = SetupLibceedLevel(dm, ceed, app_ctx, linear_elasticity, 53 level, num_comp_u, U_g_size, U_loc_size, fine_mult, data); 54 CHKERRQ(ierr); 55 56 PetscFunctionReturn(0); 57 }; 58