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
MaterialPropertys.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 MaterialPropertys_h
10 #define MaterialPropertys_h
11 
12 #include <Enums.h>
13 
14 // yaml for parsing..
15 #include <yaml-cpp/yaml.h>
16 
17 #include <map>
18 #include <string>
19 #include <vector>
20 
21 namespace YAML {
22 class Node;
23 }
24 
25 namespace sierra{
26 namespace nalu{
27 
28 class Realm;
29 class MaterialProperty;
30 class MaterialPropertyData;
31 class ReferencePropertyData;
32 class PropertyEvaluator;
33 class Simulation;
34 
35 typedef std::vector<MaterialProperty *> MaterialPropertyVector;
36 
38 public:
39  MaterialPropertys(Realm& realm);
40 
42 
43  void load(const YAML::Node & node);
44 
45  void breadboard(){};
46 
47  // ease of access methods to particular initial condition
48  size_t size() {return materialPropertyVector_.size();}
49  MaterialProperty *operator[](int i) { return materialPropertyVector_[i];}
50 
51  Simulation *root();
52  Realm *parent();
53 
55  MaterialPropertyVector materialPropertyVector_;
56  std::string propertyTableName_;
57 
58  // vectors and maps required to manage full set of options
59  std::vector<std::string> targetNames_;
60  std::map<std::string, double> universalConstantMap_;
61  std::map<PropertyIdentifier, MaterialPropertyData*> propertyDataMap_;
62  std::map<std::string, ReferencePropertyData*> referencePropertyDataMap_; /* defines overall species ordering */
63  std::map<PropertyIdentifier, PropertyEvaluator*> propertyEvalMap_;
64  std::map<std::string, ReferencePropertyData*> tablePropertyMap_;
65 };
66 
67 
68 } // namespace nalu
69 } // namespace Sierra
70 
71 #endif
Definition: Simulation.h:28
void breadboard()
Definition: MaterialPropertys.h:45
Definition: ABLForcingAlgorithm.C:26
Definition: MaterialProperty.h:26
std::map< std::string, double > universalConstantMap_
Definition: MaterialPropertys.h:60
Definition: MaterialPropertys.h:37
size_t size()
Definition: MaterialPropertys.h:48
std::map< PropertyIdentifier, PropertyEvaluator * > propertyEvalMap_
Definition: MaterialPropertys.h:63
std::map< std::string, ReferencePropertyData * > referencePropertyDataMap_
Definition: MaterialPropertys.h:62
Realm & realm_
Definition: MaterialPropertys.h:54
MaterialPropertyVector materialPropertyVector_
Definition: MaterialPropertys.h:55
Definition: NaluParsing.C:400
std::string propertyTableName_
Definition: MaterialPropertys.h:56
std::map< PropertyIdentifier, MaterialPropertyData * > propertyDataMap_
Definition: MaterialPropertys.h:61
std::vector< MaterialProperty * > MaterialPropertyVector
Definition: MaterialPropertys.h:33
Tpetra::Map< LocalOrdinal, GlobalOrdinal >::node_type Node
Definition: LinearSolver.h:32
MaterialProperty * operator[](int i)
Definition: MaterialPropertys.h:49
std::vector< std::string > targetNames_
Definition: MaterialPropertys.h:59
Definition: Realm.h:82
std::map< std::string, ReferencePropertyData * > tablePropertyMap_
Definition: MaterialPropertys.h:64