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
MeshDisplacementEquationSystem.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 
9 #ifndef MeshDisplacementEquationSystem_h
10 #define MeshDisplacementEquationSystem_h
11 
12 #include <EquationSystem.h>
13 #include <FieldTypeDef.h>
14 #include <NaluParsing.h>
15 
16 namespace stk{
17 struct topology;
18 }
19 
20 namespace sierra{
21 namespace nalu{
22 
23 class AlgorithmDriver;
24 class AssembleNodalGradUAlgorithmDriver;
25 class Realm;
26 class LinearSystem;
27 
29 
30 public:
31 
33  EquationSystems& equationSystems,
34  const bool activateMass,
35  const bool deformWrtModelCoords);
37 
38  void initial_work();
39 
40  void register_nodal_fields(
41  stk::mesh::Part *part);
42 
43  void register_element_fields(
44  stk::mesh::Part *part,
45  const stk::topology &theTopo);
46 
47  void register_interior_algorithm(
48  stk::mesh::Part *part);
49 
50  void register_wall_bc(
51  stk::mesh::Part *part,
52  const stk::topology &theTopo,
53  const WallBoundaryConditionData &wallBCData);
54 
55  void register_overset_bc();
56 
57  void initialize();
58  void reinitialize_linear_system();
59 
60  void predict_state();
61  void solve_and_update();
62  void compute_current_coordinates();
63  void compute_div_mesh_velocity();
64 
65  const bool activateMass_;
67  bool isInit_;
79 
81 
82 };
83 
84 } // namespace nalu
85 } // namespace Sierra
86 
87 #endif
VectorFieldType * currentCoordinates_
Definition: MeshDisplacementEquationSystem.h:73
Definition: ABLForcingAlgorithm.C:26
void initialize(int N, aligned_vector &x, aligned_vector &y)
Definition: UnitTestSimdBasic.C:37
VectorFieldType * meshVelocity_
Definition: MeshDisplacementEquationSystem.h:69
AssembleNodalGradUAlgorithmDriver * assembleNodalGradAlgDriver_
Definition: MeshDisplacementEquationSystem.h:80
stk::mesh::Field< double, stk::mesh::SimpleArrayTag > GenericFieldType
Definition: FieldTypeDef.h:27
ScalarFieldType * divV_
Definition: MeshDisplacementEquationSystem.h:71
VectorFieldType * coordinates_
Definition: MeshDisplacementEquationSystem.h:72
ScalarFieldType * lameLambda_
Definition: MeshDisplacementEquationSystem.h:77
Definition: Algorithm.h:14
stk::mesh::Field< double, stk::mesh::Cartesian > VectorFieldType
Definition: FieldTypeDef.h:24
A collection of Equations to be solved on a Realm.
Definition: EquationSystems.h:56
ScalarFieldType * dualNodalVolume_
Definition: MeshDisplacementEquationSystem.h:74
Definition: NaluParsing.h:305
bool isInit_
Definition: MeshDisplacementEquationSystem.h:67
Base class representation of a PDE.
Definition: EquationSystem.h:46
VectorFieldType * meshDisplacement_
Definition: MeshDisplacementEquationSystem.h:68
stk::mesh::Field< double > ScalarFieldType
Definition: FieldTypeDef.h:19
GenericFieldType * dvdx_
Definition: MeshDisplacementEquationSystem.h:70
Definition: AssembleNodalGradUAlgorithmDriver.h:19
ScalarFieldType * lameMu_
Definition: MeshDisplacementEquationSystem.h:76
ScalarFieldType * density_
Definition: MeshDisplacementEquationSystem.h:75
const bool deformWrtModelCoords_
Definition: MeshDisplacementEquationSystem.h:66
VectorFieldType * dxTmp_
Definition: MeshDisplacementEquationSystem.h:78
Definition: MeshDisplacementEquationSystem.h:28
const bool activateMass_
Definition: MeshDisplacementEquationSystem.h:65