waves
Basic FE playground
Domain.h
Go to the documentation of this file.
1 #ifndef KATOPTRON_DOMAIN_H
2 #define KATOPTRON_DOMAIN_H
3 
4 #include "katoptron.h"
5 #include "Map.h"
6 #include "ElementsList.h"
7 #include "NodesList.h"
8 #include "MaterialsList.h"
9 #include "ContactsList.h"
10 #include "wRandomField.h"
11 
12 namespace katoptron
13 {
14 
25 template <typename scalar>
26 class Domain
27 {
28 public:
29  Teuchos::RCP<ElementsList> elementsList;
30  Teuchos::RCP<NodesList> nodesList;
31  Teuchos::RCP<MaterialsList<scalar>> materialsList;
32  Teuchos::RCP<ContactsList> contactsList;
33  Teuchos::RCP<RandomField<scalar, Kokkos::DefaultExecutionSpace>> random_field;
34 
35  Domain(Problem &pbl,
36  Teuchos::RCP<Map> map,
37  Teuchos::RCP<Teuchos::ParameterList> randomParams,
38  Kokkos::View<scalar *, Kokkos::LayoutLeft> m_rv_values);
39 
41  {
42  std::cout << "~Domain()\n";
43  }
44 };
45 
59 template <typename scalar>
61  Teuchos::RCP<Map> map,
62  Teuchos::RCP<Teuchos::ParameterList> randomParams,
63  Kokkos::View<scalar *, Kokkos::LayoutLeft> m_rv_values)
64 {
65  elementsList = Teuchos::rcp(new ElementsList(pbl, map));
66  nodesList = Teuchos::rcp(new NodesList(pbl, map));
67  materialsList = Teuchos::rcp(new MaterialsList<scalar>(pbl, map));
68  contactsList = Teuchos::rcp(new ContactsList(pbl, map, elementsList, nodesList));
69  random_field = Teuchos::rcp(new RandomField<scalar, Kokkos::DefaultExecutionSpace>(randomParams, m_rv_values));
70 }
71 
72 }; // namespace katoptron
73 
74 #endif //KATOPTRON_DOMAIN_H
katoptron::Domain
Class which is used to store all the information related to the discretized domain:
Definition: Domain.h:26
katoptron::Domain::~Domain
~Domain()
Definition: Domain.h:40
katoptron::Domain::random_field
Teuchos::RCP< RandomField< scalar, Kokkos::DefaultExecutionSpace > > random_field
Definition: Domain.h:33
katoptron::Domain::elementsList
Teuchos::RCP< ElementsList > elementsList
Definition: Domain.h:29
RandomField
Definition: wRandomField.h:10
katoptron::NodesList
Class used to store the node information.
Definition: NodesList.h:19
katoptron::ContactsList
Class which is used to store the list of the contact interfaces.
Definition: ContactsList.h:21
katoptron::Domain::contactsList
Teuchos::RCP< ContactsList > contactsList
Definition: Domain.h:32
ElementsList.h
katoptron
katoptron namespace
Definition: Algebraic.h:18
katoptron::MaterialsList
Class which stores the list of the used materials.
Definition: MaterialsList.h:36
katoptron::ElementsList
Class used to store the element information including:
Definition: ElementsList.h:25
ContactsList.h
katoptron::Domain::Domain
Domain(Problem &pbl, Teuchos::RCP< Map > map, Teuchos::RCP< Teuchos::ParameterList > randomParams, Kokkos::View< scalar *, Kokkos::LayoutLeft > m_rv_values)
Domain constructor.
Definition: Domain.h:60
NodesList.h
MaterialsList.h
katoptron::Problem
Class which is used to specify in Python the thermomechanical to solve.
Definition: wProblem.h:19
wRandomField.h
katoptron.h
Map.h
katoptron::Domain::nodesList
Teuchos::RCP< NodesList > nodesList
Definition: Domain.h:30
katoptron::Domain::materialsList
Teuchos::RCP< MaterialsList< scalar > > materialsList
Definition: Domain.h:31