XC Open source finite element analysis program
LinearBucklingAnalysis.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 //LinearBucklingAnalysis.h
28 
29 
30 #ifndef LinearBucklingAnalysis_h
31 #define LinearBucklingAnalysis_h
32 
33 
34 // Description: This file contains the interface for the LinearBucklingAnalysis
35 // class. LinearBucklingAnalysis is a subclass of StaticAnalysis, it is used to perform
36 // a linear buckling analysis on the FE\_Model.
37 
38 #include <solution/analysis/analysis/StaticAnalysis.h>
39 #include "LinearBucklingEigenAnalysis.h"
40 
41 
42 namespace XC {
43 class ConvergenceTest;
44 class EigenAnalysis;
45 class LinearBucklingAlgo;
46 class LinearBucklingIntegrator;
47 class Vector;
48 class ArpackSOE;
49 class ArpackSolver;
50 
52 //
55  {
56  private:
57  SoluMethod *eigen_solu;
58  LinearBucklingEigenAnalysis linearBucklingEigenAnalysis;
59  int numModes;
60  int linear_buckling_analysis_step;
61  protected:
62  friend class ProcSolu;
63  LinearBucklingAnalysis(SoluMethod *metodo,SoluMethod *eigen_solu);
64  Analysis *getCopy(void) const;
65  public:
66  void clearAll(void);
67 
68  int analyze(int numSteps);
69  int domainChanged(void);
70 
71  int getNumModes(void) const
72  { return numModes; }
73  void setNumModes(const int &nm)
74  { numModes= nm; }
75 
78  int setArpackSOE(ArpackSOE &theSOE);
79  virtual const Vector &getEigenvector(int mode);
80  virtual const double &getEigenvalue(int mode) const;
81  };
82 inline Analysis *LinearBucklingAnalysis::getCopy(void) const
83  { return new LinearBucklingAnalysis(*this); }
84 } // end of XC namespace
85 
86 #endif
virtual const double & getEigenvalue(int mode) const
Returns the autovalor que corresponde al modo being passed as parameter.
Definition: LinearBucklingAnalysis.cc:123
virtual const Vector & getEigenvector(int mode)
Returns the autovector que corresponde al modo being passed as parameter.
Definition: LinearBucklingAnalysis.cc:114
Linear buckling analysis (used inside an StaticAnalysis).
Definition: LinearBucklingEigenAnalysis.h:43
void clearAll(void)
Clears all object members (constraint handler, analysis model,...).
Definition: LinearBucklingAnalysis.cc:53
Definition: Vector.h:82
Clase Base para los objetos que realizan the analysis.
Definition: Analysis.h:109
Solution procedure for the finite element problem. The solution procedure is definde by specifiying: ...
Definition: SoluMethod.h:76
Arpack++ based system of equations.
Definition: ArpackSOE.h:39
Solution procedure for the finite element problem.
Definition: ProcSolu.h:56
LinearBucklingAnalysis(SoluMethod *metodo, SoluMethod *eigen_solu)
Constructor.
Definition: LinearBucklingAnalysis.cc:48
int setArpackSOE(ArpackSOE &theSOE)
Sets the linear system of equations to use in the analysis de eigenvalues.
Definition: LinearBucklingAnalysis.cc:109
Linear buckling analysis.
Definition: LinearBucklingAnalysis.h:54
Algorithm for linear buckling analysis.
Definition: LinearBucklingAlgo.h:78
int analyze(int numSteps)
Performs the analysis.
Definition: LinearBucklingAnalysis.cc:61
LinearBucklingIntegrator is an algorithmic class for setting up the finite element equations for a li...
Definition: LinearBucklingIntegrator.h:47
int domainChanged(void)
Hace los cambios que sean necesarios tras un cambio en el domain.
Definition: LinearBucklingAnalysis.cc:92
int setLinearBucklingIntegrator(LinearBucklingIntegrator &)
the integrator to use in the analysis de eigenvalues.
Definition: LinearBucklingAnalysis.cc:105
performs a static analysis on the FE_Model.
Definition: StaticAnalysis.h:78
int setLinearBucklingAlgorithm(LinearBucklingAlgo &)
Set the solution algorithm to use for linear buckling analysis.
Definition: LinearBucklingAnalysis.cc:100
================================================================================
Definition: ContinuaReprComponent.h:34