waves
Basic FE playground
wF0Ps.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 WF0PS_H
18 #define WF0PS_H
19 
20 #include "flow.h"
21 #include "wObserver.h"
22 #include <Eigen/Dense>
23 
24 namespace flow
25 {
26 
30 class FLOW_API F0Ps : public fwk::Observer
31 {
32 public:
33  F0Ps() : Observer() {}
34  virtual ~F0Ps() {}
35 
36  virtual double eval(Eigen::Vector3d const &pos) const = 0;
37 };
38 
42 class FLOW_API F0PsPhiInf : public F0Ps
43 {
44  int nDim;
45  double alpha;
46  double beta;
47 
48 public:
49  F0PsPhiInf(int _nDim, double _alpha, double _beta = 0);
50  virtual void update(double _alpha) override;
51 
52  virtual double eval(Eigen::Vector3d const &pos) const override;
53 };
54 
55 } // namespace flow
56 
57 #endif //WF0PS_H
flow::F0Ps
Scalar functions depending on spatial position.
Definition: wF0Ps.h:30
flow::F0PsPhiInf
Freestream potential.
Definition: wF0Ps.h:42
flow::F0Ps::F0Ps
F0Ps()
Definition: wF0Ps.h:33
FLOW_API
#define FLOW_API
Definition: flow.h:29
flow
Namespace for flow module.
Definition: flow.h:37
flow::F0PsPhiInf::nDim
int nDim
number of dimensions
Definition: wF0Ps.h:44
flow::F0PsPhiInf::beta
double beta
angle of sideslip
Definition: wF0Ps.h:46
flow::F0PsPhiInf::alpha
double alpha
angle of attack
Definition: wF0Ps.h:45
flow::F0Ps::~F0Ps
virtual ~F0Ps()
Definition: wF0Ps.h:34
flow.h