Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GlobalLinSysXxt.h
Go to the documentation of this file.
1 /*
2  * GlobalLinSysXxt.h
3  *
4  * Created on: 19 Oct 2012
5  * Author: cc
6  */
7 
8 #ifndef NEKTAR_LIB_MULTIREGIONS_GLOBALLINSYSXXT_H
9 #define NEKTAR_LIB_MULTIREGIONS_GLOBALLINSYSXXT_H
14 
15 namespace Xxt
16 {
17  struct crs_data;
18 }
19 
20 namespace Nektar
21 {
22  namespace MultiRegions
23  {
24  // Forward declarations
25 
26  //class AssemblyMapDG;
27  class ExpList;
28 
29  class GlobalLinSysXxt : virtual public GlobalLinSys
30  {
31  public:
32  /// Constructor for full direct matrix solve.
34  const GlobalLinSysKey &pKey,
35  const boost::weak_ptr<ExpList> &pExp,
36  const boost::shared_ptr<AssemblyMap>
37  &pLocToGloMap);
38 
40 
41  protected:
43  Array<OneD, unsigned int> m_Ai;
44  Array<OneD, unsigned int> m_Aj;
45  Array<OneD, double> m_Ar;
46 
47  Array<OneD, NekDouble> m_locToGloSignMult;
48 
49  Array<OneD, int> m_map;
50 
51  /// Solve the linear system for given input and output vectors.
52  virtual void v_SolveLinearSystem(
53  const int pNumRows,
54  const Array<OneD,const NekDouble> &pInput,
55  Array<OneD, NekDouble> &pOutput,
56  const AssemblyMapSharedPtr &locToGloMap,
57  const int pNumDir = 0);
58 
59  void GlobalToLocalNoSign(const Array<OneD, const NekDouble> &global,
60  Array<OneD, NekDouble> &local);
61 
62  void LocalToGlobalNoSign(const Array<OneD, const NekDouble> &local,
63  Array<OneD, NekDouble> &global);
64 
65  };
66  }
67 }
68 #endif /* GLOBALLINSYSXXT_H_ */