FEDEM Solver  R8.0
Source code of the dynamics solver
FFaFunctionManager.H
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2023 SAP SE
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5 // This file is part of FEDEM - https://openfedem.org
7 
8 #ifndef FFA_FUNCTION_MANAGER_H
9 #define FFA_FUNCTION_MANAGER_H
10 
11 #include <vector>
12 #include <string>
13 
14 class FaVec3;
15 
16 
18 {
19 public:
20  static double getValue(int baseID,
21  const std::vector<int>& intVars,
22  const std::vector<double>& realVars,
23  const double x, int& ierr);
24 
25  static double getValue(int baseID, int fType, int extrap,
26  const std::vector<double>& realVars,
27  const double x, int& ierr);
28 
29  static double getDerivative(int baseID, int fType, int extrap,
30  const std::vector<double>& realVars,
31  const double x, int& ierr);
32 
33  static int getSmartPoints(int funcType, int extrap,
34  const double start, const double stop,
35  const std::vector<double>& realVars,
36  std::vector<double>& xtofill,
37  std::vector<double>& ytofill);
38 
39  static int getTypeID(const std::string& functionType);
40 
41  static bool initWaveFunction(const std::string& fileName, const int nWave,
42  const int rSeed, std::vector<double>& realVars);
43  static bool initWaveFunction(const int iop, const int nWave, const int nDir,
44  const int sprExp, const int rSeed,
45  std::vector<double>& realVars);
46  static bool initWaveFunction(const int iop, const double g, double d,
47  std::vector<double>& realVars);
48  static bool initWaveFunction (const int iop, const int nWave, const int rSeed,
49  const double g, const double d,
50  std::vector<int>& intVars,
51  std::vector<double>& realVars);
52 
53  static double getWaveValue(const std::vector<double>& realVars,
54  const double g, const double d, const FaVec3& x,
55  const double t, int iop = 0);
56  static double getWaveValue(const std::vector<int>& intVars,
57  const std::vector<double>& realVars,
58  const double g, const double d, const FaVec3& x,
59  const double t, int iop = 0);
60  static double getWaveValue(const std::vector<int>& intVars,
61  const std::vector<double>& realVars,
62  const double g, const double d, const FaVec3& x,
63  const double t, FaVec3& v, FaVec3& a, int iop = 0);
64 };
65 
66 #endif
Definition: FFaFunctionManager.H:18
static int getTypeID(const std::string &functionType)
Definition: FFaFunctionManager.C:181
static double getDerivative(int baseID, int fType, int extrap, const std::vector< double > &realVars, const double x, int &ierr)
Definition: FFaFunctionManager.C:152
static bool initWaveFunction(const std::string &fileName, const int nWave, const int rSeed, std::vector< double > &realVars)
Definition: FFaFunctionManager.C:204
static double getValue(int baseID, const std::vector< int > &intVars, const std::vector< double > &realVars, const double x, int &ierr)
static int getSmartPoints(int funcType, int extrap, const double start, const double stop, const std::vector< double > &realVars, std::vector< double > &xtofill, std::vector< double > &ytofill)
Definition: FFaFunctionManager.C:193
static double getWaveValue(const std::vector< double > &realVars, const double g, const double d, const FaVec3 &x, const double t, int iop=0)
Definition: FFaFunctionManager.C:305
Class for point vectors in 3D space.
Definition: FFaVec3.H:40
real(sp), dimension(:,:,:), pointer a
Definition: diffractionModule.f90:21
integer(ptr), save, private x
Definition: extCtrlSysRoutinesModule.f90:16
real(dp), save, private g
Definition: FNVwaveForceModule.f90:42
static int iop
Internal operation status variable.
Definition: solverInterface.C:49