waves
Basic FE playground
wWakeElement.h
Go to the documentation of this file.
1 /*
2  * Copyright 2022 University of Liège
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef WWAKEELEMENT_H
18 #define WWAKEELEMENT_H
19 
20 #include "flow.h"
21 #include "wObject.h"
22 #include "wElement.h"
23 #include <vector>
24 #include <map>
25 
26 namespace flow
27 {
28 
41 class FLOW_API WakeElement : public fwk::wObject
42 {
43 public:
44  size_t no;
45  tbox::Element *surUpE;
46  tbox::Element *surLwE;
47  tbox::Element *volUpE;
48  tbox::Element *volLwE;
49 
50  size_t nRow;
51  size_t nColUp;
52  size_t nColLw;
53  size_t nDim;
54 
55  std::vector<std::pair<size_t, tbox::Node *>> wkN;
56  std::map<size_t, size_t> vsMap;
57 
58  WakeElement(size_t _no, tbox::Element *&_surUpE, tbox::Element *&_surLwE, tbox::Element *&_volUpE, tbox::Element *&_volLwE, std::vector<std::pair<size_t, tbox::Node *>> &_wkN);
59 
60 #ifndef SWIG
61  virtual void write(std::ostream &out) const override;
62 #endif
63 
64 private:
65  void mapNodes();
66 };
67 
68 } // namespace flow
69 
70 #endif //WWAKEELEMENT_H
flow::WakeElement::volUpE
tbox::Element * volUpE
Connected volume elements "+" side.
Definition: wWakeElement.h:47
flow::WakeElement
Kutta element.
Definition: wWakeElement.h:41
flow::WakeElement::nColLw
size_t nColLw
number of columns in in stiffness matrix "-" side
Definition: wWakeElement.h:52
FLOW_API
#define FLOW_API
Definition: flow.h:29
flow
Namespace for flow module.
Definition: flow.h:37
flow::WakeElement::surUpE
tbox::Element * surUpE
Surface element "+" side.
Definition: wWakeElement.h:45
flow::WakeElement::wkN
std::vector< std::pair< size_t, tbox::Node * > > wkN
map between local index and contributing wake global nodes
Definition: wWakeElement.h:55
flow::WakeElement::surLwE
tbox::Element * surLwE
Surface element "-" side.
Definition: wWakeElement.h:46
flow::WakeElement::no
size_t no
ID.
Definition: wWakeElement.h:44
flow::WakeElement::volLwE
tbox::Element * volLwE
Connected volume elements "-" side.
Definition: wWakeElement.h:48
flow::WakeElement::nRow
size_t nRow
number of rows in stiffness matrix
Definition: wWakeElement.h:50
flow::WakeElement::nColUp
size_t nColUp
number of columns in in stiffness matrix "+" side
Definition: wWakeElement.h:51
flow::WakeElement::nDim
size_t nDim
dimension of volume element
Definition: wWakeElement.h:53
flow::WakeElement::vsMap
std::map< size_t, size_t > vsMap
map between surface node and volume node indices
Definition: wWakeElement.h:56
flow.h