XC Open source finite element analysis program
SymSparseLinSolver.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 // File: ~/system_of_eqn/linearSOE/LawSolver/SymSparseLinSolver.h
28 //
29 // Written: Jun Peng (junpeng@stanford.edu)
30 // Prof. Kincho H. Law
31 // Stanford University
32 // Created: 12/98
33 // Revision: A
34 //
35 // Description: This file contains the class definition for
36 // SymSparseinSolver. It solves the SymSparseLinSOEobject by calling
37 // some "C" functions. The solver used here is generalized sparse
38 // solver. The user can choose three different ordering schema.
39 //
40 // What: "@(#) SymSparseLinSolver.h, revA"
41 
42 
43 #ifndef SymSparseLinSolver_h
44 #define SymSparseLinSolver_h
45 
46 #include <solution/system_of_eqn/linearSOE/LinearSOESolver.h>
47 
48 
49 namespace XC {
50 class SymSparseLinSOE;
51 
53 //
56  {
57  private:
58  SymSparseLinSOE *theSOE;
59 
60  friend class LinearSOE;
62  virtual LinearSOESolver *getCopy(void) const;
63  virtual bool setLinearSOE(LinearSOE *theSOE);
64  public:
65 
66  int solve(void);
67  int setSize(void);
68 
69  bool setLinearSOE(SymSparseLinSOE &theSOE);
70 
71  int sendSelf(CommParameters &);
72  int recvSelf(const CommParameters &);
73 
74  };
75 
76 inline LinearSOESolver *SymSparseLinSolver::getCopy(void) const
77  { return new SymSparseLinSolver(*this); }
78 } // end of XC namespace
79 
80 #endif
81 
Solver for symmetric sparse linear SOE.
Definition: SymSparseLinSolver.h:55
Solution of the linear system of equations.
Definition: LinearSOESolver.h:82
Sparse symmetric matrix systems of equations.
Definition: SymSparseLinSOE.h:60
Linea system of equations. This is the class definition for LinearSOE. LinearSOE is an abstract base ...
Definition: LinearSOE.h:86
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34