| eulervortex.c (367c849e96f2729f89d873e43adcb60b6350e603) | eulervortex.c (a424bcd0dd58ea8f8b80ddde5af211268f0b358a) |
|---|---|
| 1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3// 4// SPDX-License-Identifier: BSD-2-Clause 5// 6// This file is part of CEED: http://github.com/ceed 7 8/// @file --- 6 unchanged lines hidden (view full) --- 15 16#include "../navierstokes.h" 17#include "../qfunctions/setupgeo.h" 18 19PetscErrorCode NS_EULER_VORTEX(ProblemData *problem, DM dm, void *ctx, SimpleBC bc) { 20 EulerTestType euler_test; 21 User user = *(User *)ctx; 22 StabilizationType stab; | 1// Copyright (c) 2017-2022, Lawrence Livermore National Security, LLC and other CEED contributors. 2// All Rights Reserved. See the top-level LICENSE and NOTICE files for details. 3// 4// SPDX-License-Identifier: BSD-2-Clause 5// 6// This file is part of CEED: http://github.com/ceed 7 8/// @file --- 6 unchanged lines hidden (view full) --- 15 16#include "../navierstokes.h" 17#include "../qfunctions/setupgeo.h" 18 19PetscErrorCode NS_EULER_VORTEX(ProblemData *problem, DM dm, void *ctx, SimpleBC bc) { 20 EulerTestType euler_test; 21 User user = *(User *)ctx; 22 StabilizationType stab; |
| 23 MPI_Comm comm = PETSC_COMM_WORLD; | 23 MPI_Comm comm = user->comm; 24 Ceed ceed = user->ceed; |
| 24 PetscBool implicit; 25 PetscBool has_curr_time = PETSC_TRUE; 26 PetscBool has_neumann = PETSC_TRUE; 27 EulerContext euler_ctx; 28 CeedQFunctionContext euler_context; 29 30 PetscFunctionBeginUser; 31 PetscCall(PetscCalloc1(1, &euler_ctx)); --- 103 unchanged lines hidden (view full) --- 135 euler_ctx->center[2] = center[2]; 136 euler_ctx->vortex_strength = vortex_strength; 137 euler_ctx->c_tau = c_tau; 138 euler_ctx->mean_velocity[0] = mean_velocity[0]; 139 euler_ctx->mean_velocity[1] = mean_velocity[1]; 140 euler_ctx->mean_velocity[2] = mean_velocity[2]; 141 euler_ctx->stabilization = stab; 142 | 25 PetscBool implicit; 26 PetscBool has_curr_time = PETSC_TRUE; 27 PetscBool has_neumann = PETSC_TRUE; 28 EulerContext euler_ctx; 29 CeedQFunctionContext euler_context; 30 31 PetscFunctionBeginUser; 32 PetscCall(PetscCalloc1(1, &euler_ctx)); --- 103 unchanged lines hidden (view full) --- 136 euler_ctx->center[2] = center[2]; 137 euler_ctx->vortex_strength = vortex_strength; 138 euler_ctx->c_tau = c_tau; 139 euler_ctx->mean_velocity[0] = mean_velocity[0]; 140 euler_ctx->mean_velocity[1] = mean_velocity[1]; 141 euler_ctx->mean_velocity[2] = mean_velocity[2]; 142 euler_ctx->stabilization = stab; 143 |
| 143 CeedQFunctionContextCreate(user->ceed, &euler_context); 144 CeedQFunctionContextSetData(euler_context, CEED_MEM_HOST, CEED_USE_POINTER, sizeof(*euler_ctx), euler_ctx); 145 CeedQFunctionContextSetDataDestroy(euler_context, CEED_MEM_HOST, FreeContextPetsc); 146 CeedQFunctionContextRegisterDouble(euler_context, "solution time", offsetof(struct EulerContext_, curr_time), 1, "Physical time of the solution"); 147 CeedQFunctionContextReferenceCopy(euler_context, &problem->ics.qfunction_context); 148 CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_vol_rhs.qfunction_context); 149 CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_vol_ifunction.qfunction_context); 150 CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_inflow.qfunction_context); 151 CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_outflow.qfunction_context); | 144 PetscCallCeed(ceed, CeedQFunctionContextCreate(user->ceed, &euler_context)); 145 PetscCallCeed(ceed, CeedQFunctionContextSetData(euler_context, CEED_MEM_HOST, CEED_USE_POINTER, sizeof(*euler_ctx), euler_ctx)); 146 PetscCallCeed(ceed, CeedQFunctionContextSetDataDestroy(euler_context, CEED_MEM_HOST, FreeContextPetsc)); 147 PetscCallCeed(ceed, CeedQFunctionContextRegisterDouble(euler_context, "solution time", offsetof(struct EulerContext_, curr_time), 1, 148 "Physical time of the solution")); 149 PetscCallCeed(ceed, CeedQFunctionContextReferenceCopy(euler_context, &problem->ics.qfunction_context)); 150 PetscCallCeed(ceed, CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_vol_rhs.qfunction_context)); 151 PetscCallCeed(ceed, CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_vol_ifunction.qfunction_context)); 152 PetscCallCeed(ceed, CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_inflow.qfunction_context)); 153 PetscCallCeed(ceed, CeedQFunctionContextReferenceCopy(euler_context, &problem->apply_outflow.qfunction_context)); |
| 152 PetscFunctionReturn(PETSC_SUCCESS); 153} 154 155PetscErrorCode PRINT_EULER_VORTEX(User user, ProblemData *problem, AppCtx app_ctx) { 156 MPI_Comm comm = user->comm; | 154 PetscFunctionReturn(PETSC_SUCCESS); 155} 156 157PetscErrorCode PRINT_EULER_VORTEX(User user, ProblemData *problem, AppCtx app_ctx) { 158 MPI_Comm comm = user->comm; |
| 159 Ceed ceed = user->ceed; |
|
| 157 EulerContext euler_ctx; 158 159 PetscFunctionBeginUser; | 160 EulerContext euler_ctx; 161 162 PetscFunctionBeginUser; |
| 160 CeedQFunctionContextGetData(problem->ics.qfunction_context, CEED_MEM_HOST, &euler_ctx); | 163 PetscCallCeed(ceed, CeedQFunctionContextGetData(problem->ics.qfunction_context, CEED_MEM_HOST, &euler_ctx)); |
| 161 PetscCall(PetscPrintf(comm, 162 " Problem:\n" 163 " Problem Name : %s\n" 164 " Test Case : %s\n" 165 " Background Velocity : %f,%f,%f\n" 166 " Stabilization : %s\n", 167 app_ctx->problem_name, EulerTestTypes[euler_ctx->euler_test], euler_ctx->mean_velocity[0], euler_ctx->mean_velocity[1], 168 euler_ctx->mean_velocity[2], StabilizationTypes[euler_ctx->stabilization])); 169 | 164 PetscCall(PetscPrintf(comm, 165 " Problem:\n" 166 " Problem Name : %s\n" 167 " Test Case : %s\n" 168 " Background Velocity : %f,%f,%f\n" 169 " Stabilization : %s\n", 170 app_ctx->problem_name, EulerTestTypes[euler_ctx->euler_test], euler_ctx->mean_velocity[0], euler_ctx->mean_velocity[1], 171 euler_ctx->mean_velocity[2], StabilizationTypes[euler_ctx->stabilization])); 172 |
| 170 CeedQFunctionContextRestoreData(problem->ics.qfunction_context, &euler_ctx); | 173 PetscCallCeed(ceed, CeedQFunctionContextRestoreData(problem->ics.qfunction_context, &euler_ctx)); |
| 171 PetscFunctionReturn(PETSC_SUCCESS); 172} | 174 PetscFunctionReturn(PETSC_SUCCESS); 175} |