Free Electron
solve.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __solve_h__
8 #define __solve_h__
9 
10 #include "fe/data.h"
11 #include "math/math.h"
12 #include "thread/thread.h"
13 
14 #ifdef MODULE_solve
15 #define FE_SOLVE_PORT FE_DL_EXPORT
16 #else
17 #define FE_SOLVE_PORT FE_DL_IMPORT
18 #endif
19 
20 namespace fe
21 {
22 
23 typedef double t_solve_real;
24 typedef Vector<2, t_solve_real> t_solve_v2;
25 typedef Vector<3, t_solve_real> t_solve_v3;
26 typedef Matrix<3,3,t_solve_real> t_solve_matrix;
27 typedef Matrix<2,2,t_solve_real> t_solve_m2;
28 typedef Vector<2, t_solve_real> t_solve_v2;
29 const t_solve_v3 solveZeroVector(0.0,0.0,0.0);
30 
31 namespace ext
32 {
33 
34 
35 inline
36 void copy(t_solve_v3 &a_solve_v3, const SpatialVector &a_SpatialVector)
37 {
38  a_solve_v3[0] = a_SpatialVector[0];
39  a_solve_v3[1] = a_SpatialVector[1];
40  a_solve_v3[2] = a_SpatialVector[2];
41 }
42 } /* namespace ext */
43 } /* namespace fe */
44 
45 #include "solve/MassI.h"
46 
47 #include "solve/DenseVector.h"
48 #include "solve/SparseArray.h"
49 #include "solve/SparseMatrix.h"
50 #include "solve/SparseMatrix2x2.h"
51 #include "solve/SparseMatrix3x3.h"
52 #include "solve/BlockPCG.h"
53 #include "solve/IncompleteSparse.h"
55 #include "solve/BCGThreaded.h"
57 #include "solve/solveAS.h"
58 
59 #include "solve/SemiImplicit2D.h"
60 #include "solve/SemiImplicit1D.h"
61 #include "solve/SemiImplicit.h"
62 
63 #include "solve/Splat.h"
64 
65 namespace fe
66 {
67 namespace ext
68 {
69 
70 fe::Library* CreateSolveLibrary(fe::sp<fe::Master> spMaster);
71 
72 } /* namespace ext */
73 } /* namespace fe */
74 
75 #endif // __solve_h__
kernel
Definition: namespace.dox:3
Interface into a dynamic library to access its factories.
Definition: Library.h:60