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}