8 #ifndef UNITTESTKERNELUTILS_H 9 #define UNITTESTKERNELUTILS_H 11 #include <gtest/gtest.h> 23 #include <gtest/gtest.h> 34 const stk::mesh::BulkData&,
39 const stk::mesh::BulkData& bulk,
44 const stk::mesh::BulkData&,
49 const stk::mesh::BulkData&,
54 const stk::mesh::BulkData& bulk,
59 const stk::mesh::BulkData& bulk,
64 const stk::mesh::BulkData& bulk,
69 const stk::mesh::BulkData& bulk,
74 const stk::mesh::BulkData& bulk,
79 const stk::mesh::BulkData& bulk,
84 const stk::mesh::BulkData& bulk,
89 const stk::mesh::BulkData& bulk,
94 const stk::mesh::BulkData& bulk,
99 const stk::mesh::BulkData&,
102 const double primary,
103 const double secondary);
106 const stk::mesh::BulkData&,
109 const double primary,
110 const double secondary);
113 const stk::mesh::BulkData& bulk,
120 const stk::mesh::BulkData& bulk,
125 const stk::mesh::BulkData&,
126 const stk::topology&,
133 const stk::mesh::BulkData& bulk,
134 const stk::topology& topo,
141 const stk::mesh::BulkData& bulk,
142 const stk::topology& topo,
149 const Kokkos::View<double*>& calcValue,
150 const double* exactValue,
151 const double tol = 1.0e-15);
154 const Kokkos::View<double*>& calcValue,
155 const double exactValue,
156 const double tol = 1.0e-15);
159 const Kokkos::View<double**>& calcValue,
160 const double* exactValue,
161 const double tol = 1.0e-15);
165 const Kokkos::View<double**>& calcValue,
166 const double (*exactValue)[N],
167 const double tol = 1.0e-15)
169 const int dim1 = calcValue.dimension(0);
170 const int dim2 = calcValue.dimension(1);
173 for (
int i=0; i < dim1; ++i) {
174 for (
int j=0; j < dim2; ++j) {
175 EXPECT_NEAR(calcValue(i,j), exactValue[i][j],
tol);
182 const Kokkos::View<double**>& calcValue,
183 const double exactValue,
184 const double tol = 1.0e-15)
186 const int dim1 = calcValue.dimension(0);
187 const int dim2 = calcValue.dimension(1);
190 for (
int i=0; i < dim1; ++i) {
191 for (
int j=0; j < dim2; ++j) {
192 EXPECT_NEAR(calcValue(i,j), exactValue,
tol);
199 #ifndef KOKKOS_HAVE_CUDA 211 : comm_(MPI_COMM_WORLD),
228 partVec_ = {meta_.get_part(
"block_1")};
230 coordinates_ =
static_cast<const VectorFieldType*
>(meta_.coordinate_field());
232 EXPECT_TRUE(coordinates_ !=
nullptr);
261 stk::topology::NODE_RANK,
"velocity",2)),
264 stk::topology::NODE_RANK,
"dpdx",2)),
267 stk::topology::NODE_RANK,
"density",2)),
270 stk::topology::NODE_RANK,
"pressure",2))
272 stk::mesh::put_field(*velocity_, meta_.universal_part(), spatialDim_);
273 stk::mesh::put_field(*dpdx_, meta_.universal_part(), spatialDim_);
274 stk::mesh::put_field(*density_, meta_.universal_part(), 1);
275 stk::mesh::put_field(*pressure_, meta_.universal_part(), 1);
282 fill_mesh(doPerturb);
309 stk::topology::ELEM_RANK,
"mass_flow_rate_scs")),
312 stk::topology::NODE_RANK,
"viscosity")),
315 stk::topology::NODE_RANK,
"dudx")),
318 stk::topology::NODE_RANK,
"temperature"))
321 stk::mesh::put_field(*massFlowRate_, meta_.universal_part(), meSCS->numIntPoints_);
322 stk::mesh::put_field(*viscosity_, meta_.universal_part(), 1);
323 stk::mesh::put_field(*dudx_, meta_.universal_part(), spatialDim_ * spatialDim_);
324 stk::mesh::put_field(*temperature_, meta_.universal_part(), 1);
333 bulk_, stk::topology::HEX_8, *coordinates_, *density_, *velocity_, *massFlowRate_);
360 stk::topology::NODE_RANK,
"temperature",2)),
363 stk::topology::NODE_RANK,
"thermal_conductivity",2))
365 stk::mesh::put_field(*temperature_, meta_.universal_part(), 1);
366 stk::mesh::put_field(*thermalCond_, meta_.universal_part(), 1);
371 fill_mesh(doPerturb);
394 "mixture_fraction")),
402 "effective_viscosity")),
404 "mass_flow_rate_scs")),
412 viscPrimary_(1.967e-5),
413 viscSecondary_(1.85e-5)
416 stk::mesh::put_field(*mixFraction_, meta_.universal_part(), 1);
417 stk::mesh::put_field(*velocity_, meta_.universal_part(), spatialDim_);
418 stk::mesh::put_field(*density_, meta_.universal_part(), 1);
419 stk::mesh::put_field(*viscosity_, meta_.universal_part(), 1);
420 stk::mesh::put_field(*massFlowRate_, meta_.universal_part(), meSCS->numIntPoints_);
426 fill_mesh(doPerturb);
431 rhoPrimary_, rhoSecondary_);
433 viscPrimary_, viscSecondary_);
435 bulk_, stk::topology::HEX_8, *coordinates_, *density_, *velocity_, *massFlowRate_);
stk::ParallelMachine comm_
Definition: UnitTestKernelUtils.h:235
std::vector< Part * > PartVector
Definition: Algorithm.h:16
void density_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &density)
Definition: UnitTestKernelUtils.C:371
void turbulent_viscosity_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &turbulent_viscosity)
Definition: UnitTestKernelUtils.C:411
virtual ~MomentumKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:327
void sdr_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &sdr)
Definition: UnitTestKernelUtils.C:395
void pressure_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &pressure)
Definition: UnitTestKernelUtils.C:347
void mixture_fraction_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, const ScalarFieldType &mixtureFrac, const double znot, const double amf)
Definition: UnitTestKernelUtils.C:467
Definition: UnitTestKernelUtils.C:327
const double viscPrimary_
Definition: UnitTestKernelUtils.h:451
Text fixture for mixture fraction equation kernels.
Definition: UnitTestKernelUtils.h:388
void dhdx_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, VectorFieldType &dhdx)
Definition: UnitTestKernelUtils.C:487
stk::mesh::BulkData bulk_
Definition: UnitTestKernelUtils.h:238
virtual void fill_mesh_and_init_fields(bool doPerturb=false)
Definition: UnitTestKernelUtils.h:424
void minimum_distance_to_wall_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &minimum_distance_to_wall)
Definition: UnitTestKernelUtils.C:427
static MasterElement * get_surface_master_element(const stk::topology &theTopo, int dimension=0, std::string quadType="GaussLegendre")
Definition: MasterElementFactory.C:208
const double viscSecondary_
Definition: UnitTestKernelUtils.h:452
virtual void fill_mesh_and_init_fields(bool doPerturb=false)
Definition: UnitTestKernelUtils.h:280
void calc_mass_flow_rate_scs(const stk::mesh::BulkData &bulk, const stk::topology &topo, const VectorFieldType &coordinates, const ScalarFieldType &density, const VectorFieldType &velocity, const GenericFieldType &massFlowRate)
Definition: UnitTestKernelUtils.C:495
virtual ~ContinuityKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:299
MomentumKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:305
LowMachKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:257
Definition: UnitTestKernelUtils.h:296
void property_from_mixture_fraction_test_function(const stk::mesh::BulkData &bulk, const ScalarFieldType &mixFraction, ScalarFieldType &property, const double primary, const double secondary)
Definition: UnitTestKernelUtils.C:435
virtual ~MixtureFractionKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:422
Definition: SolutionOptions.h:38
Definition: Algorithm.h:14
virtual ~TestKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:218
void fill_mesh_1_elem_per_proc_hex8(stk::mesh::BulkData &bulk)
Definition: UnitTestUtils.C:32
Definition: UnitTestKernelUtils.h:302
void dwdx_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, VectorFieldType &dwdx)
Definition: UnitTestKernelUtils.C:403
void fill_mesh(bool doPerturb=false)
Definition: UnitTestKernelUtils.h:220
void dpdx_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, VectorFieldType &dpdx)
Definition: UnitTestKernelUtils.C:355
void expect_all_near(const Kokkos::View< double * > &calcValue, const double *exactValue, const double tol)
Definition: UnitTestKernelUtils.C:990
void perturb_coord_hex_8(stk::mesh::BulkData &bulk, double perturbSize)
Definition: UnitTestUtils.C:39
MixtureFractionKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:391
void fill_mesh_and_init_fields(bool doPerturb=false)
Definition: UnitTestKernelUtils.h:369
virtual void fill_mesh_and_init_fields(bool doPerturb=false)
Definition: UnitTestKernelUtils.h:329
const double lamSc_
Definition: UnitTestKernelUtils.h:447
HeatCondKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:356
const double amf_
Definition: UnitTestKernelUtils.h:446
Base class for all computational kernel testing setups.
Definition: UnitTestKernelUtils.h:207
Text fixture for heat conduction equation kernels.
Definition: UnitTestKernelUtils.h:353
void dkdx_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, VectorFieldType &dkdx)
Definition: UnitTestKernelUtils.C:387
void field_fill(const stk::mesh::MetaData &metaData, const stk::mesh::BulkData &bulkData, const double alpha, const stk::mesh::FieldBase &xField, const bool auraIsActive, const stk::topology::rank_t entityRankValue)
Definition: FieldFunctions.C:59
virtual ~LowMachKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:278
stk::mesh::MetaData meta_
Definition: UnitTestKernelUtils.h:237
const double rhoSecondary_
Definition: UnitTestKernelUtils.h:450
void inverse_property_from_mixture_fraction_test_function(const stk::mesh::BulkData &bulk, const ScalarFieldType &mixFraction, ScalarFieldType &property, const double primary, const double secondary)
Definition: UnitTestKernelUtils.C:451
void velocity_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, VectorFieldType &velocity)
Definition: UnitTestKernelUtils.C:329
void temperature_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &temperature)
Definition: UnitTestKernelUtils.C:363
void tke_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &tke)
Definition: UnitTestKernelUtils.C:379
const double trbSc_
Definition: UnitTestKernelUtils.h:448
unsigned spatialDim_
Definition: UnitTestKernelUtils.h:236
sierra::nalu::SolutionOptions solnOpts_
Definition: UnitTestKernelUtils.h:241
void dudx_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, GenericFieldType &dudx)
Definition: UnitTestKernelUtils.C:338
const double tol
Definition: UnitTestUtils.h:56
const double znot_
Definition: UnitTestKernelUtils.h:445
TestKernelHex8Mesh()
Definition: UnitTestKernelUtils.h:210
const double rhoPrimary_
Definition: UnitTestKernelUtils.h:449
stk::mesh::PartVector partVec_
Definition: UnitTestKernelUtils.h:239
void sst_f_one_blending_test_function(const stk::mesh::BulkData &bulk, const VectorFieldType &coordinates, ScalarFieldType &sst_f_one_blending)
Definition: UnitTestKernelUtils.C:419
void calc_projected_nodal_gradient(const stk::mesh::BulkData &bulk, const stk::topology &topo, const VectorFieldType &coordinates, ScalarFieldType &dnv, const ScalarFieldType &scalarField, VectorFieldType &gradField)
Definition: UnitTestKernelUtils.C:939
Test Fixture for Low-Mach Kernels.
Definition: UnitTestKernelUtils.h:254