Nalu
Nalu: a generalized unstructured massively parallel low Mach flow code designed to support a variety of energy applications of interest (most notably Wind ECP) built on the Sierra Toolkit and Trilinos solver Tpetra/Epetra stack. The open source BSD, clause 3 license model has been chosen for the code base. See LICENSE for more information. http://NaluCFD.org
FieldFunctions.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
2 /* Copyright 2014 Sandia Corporation. */
3 /* This software is released under the license detailed */
4 /* in the file, LICENSE, which is located in the top-level Nalu */
5 /* directory structure */
6 /*------------------------------------------------------------------------*/
7 
8 #ifndef FieldFunctions_h
9 #define FieldFunctions_h
10 
11 #include <stk_mesh/base/MetaData.hpp>
12 
13 namespace stk{
14 namespace mesh{
15 class FieldBase;
16 class BulkData;
17 }
18 }
19 
20 namespace sierra{
21 namespace nalu{
22 
23 /*
24  A note on design:
25 
26  FieldFunction methods can intersect the desired field (set of fields)
27  with the universal part as follows:
28 
29  const stk::mesh::Selector selector =
30  metaData.universal_part() &
31  stk::mesh::selectField(xField) & stk::mesh::selectField(yField);
32 
33  The above selector would include aura-entities
34 
35  An alternative choice would be to intersect the desired field )set of fields)
36  with the locally_owned or globally_shared part as follows:
37 
38  stk::mesh::Selector s_all_nodes
39  = (metaData.locally_owned_part() | metaData.globally_shared_part())
40  &stk::mesh::selectField(*myField);
41 
42  The above selector would exclude aura-entities
43 */
44 
45 // y = alpha*x + beta*y
46 void field_axpby(
47  const stk::mesh::MetaData & metaData,
48  const stk::mesh::BulkData & bulkData,
49  const double alpha,
50  const stk::mesh::FieldBase & xField,
51  const double beta,
52  const stk::mesh::FieldBase & yField,
53  const bool auraIsActive,
54  const stk::topology::rank_t entityRankValue=stk::topology::NODE_RANK);
55 
56 // x = alpha
57 void field_fill(
58  const stk::mesh::MetaData & metaData,
59  const stk::mesh::BulkData & bulkData,
60  const double alpha,
61  const stk::mesh::FieldBase & xField,
62  const bool auraIsActive,
63  const stk::topology::rank_t entityRankValue=stk::topology::NODE_RANK);
64 
65 // x = alpha * x
66 void field_scale(
67  const stk::mesh::MetaData & metaData,
68  const stk::mesh::BulkData & bulkData,
69  const double alpha,
70  const stk::mesh::FieldBase & xField,
71  const bool auraIsActive,
72  const stk::topology::rank_t entityRankValue=stk::topology::NODE_RANK);
73 
74 // y = x
75 void field_copy(
76  const stk::mesh::MetaData & metaData,
77  const stk::mesh::BulkData & bulkData,
78  const stk::mesh::FieldBase & xField,
79  const stk::mesh::FieldBase & yField,
80  const bool auraIsActive,
81  const stk::topology::rank_t entityRankValue=stk::topology::NODE_RANK);
82 
83 // y[compJ] = x[compK]
84 void field_index_copy(
85  const stk::mesh::MetaData & metaData,
86  const stk::mesh::BulkData & bulkData,
87  const stk::mesh::FieldBase & xField,
88  const int xFieldIndex,
89  const stk::mesh::FieldBase & yField,
90  const int yFieldIndex,
91  const bool auraIsActive,
92  const stk::topology::rank_t entityRankValue=stk::topology::NODE_RANK);
93 
94 } // namespace nalu
95 } // namespace Sierra
96 
97 #endif
Definition: ABLForcingAlgorithm.C:26
void field_axpby(const stk::mesh::MetaData &metaData, const stk::mesh::BulkData &bulkData, const double alpha, const stk::mesh::FieldBase &xField, const double beta, const stk::mesh::FieldBase &yField, const bool auraIsActive, const stk::topology::rank_t entityRankValue)
Definition: FieldFunctions.C:24
Definition: Algorithm.h:14
void field_copy(const stk::mesh::MetaData &metaData, const stk::mesh::BulkData &bulkData, const stk::mesh::FieldBase &xField, const stk::mesh::FieldBase &yField, const bool auraIsActive, const stk::topology::rank_t entityRankValue)
Definition: FieldFunctions.C:115
void field_scale(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:86
void field_index_copy(const stk::mesh::MetaData &metaData, const stk::mesh::BulkData &bulkData, const stk::mesh::FieldBase &xField, const int xFieldIndex, const stk::mesh::FieldBase &yField, const int yFieldIndex, const bool auraIsActive, const stk::topology::rank_t entityRankValue)
Definition: FieldFunctions.C:149
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