xc
TRBDF3.h
1 /* ****************************************************************** **
2 ** OpenSees - Open System for Earthquake Engineering Simulation **
3 ** Pacific Earthquake Engineering Research Center **
4 ** **
5 ** **
6 ** (C) Copyright 1999, The Regents of the University of California **
7 ** All Rights Reserved. **
8 ** **
9 ** Commercial use of this program without express permission of the **
10 ** University of California, Berkeley, is strictly prohibited. See **
11 ** file 'COPYRIGHT' in main directory for information on usage and **
12 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
13 ** **
14 ** Developed by: **
15 ** Frank McKenna (fmckenna@ce.berkeley.edu) **
16 ** Gregory L. Fenves (fenves@ce.berkeley.edu) **
17 ** Filip C. Filippou (filippou@ce.berkeley.edu) **
18 ** **
19 ** ****************************************************************** */
20 
21 // $Revision: 1.1 $
22 // $Date: 2009-03-20 18:36:30 $
23 // $Source: /usr/local/cvs/OpenSees/SRC/analysis/integrator/TRBDF3.h,v $
24 
25 #ifndef TRBDF3_h
26 #define TRBDF3_h
27 
28 // Written : krm
29 // Created : 11/2012
30 //
31 // Description: This file contains the class definition for TRBDF3.
32 // TRBDF3 is an algorithmic class for performing a transient analysis
33 // using the so-called TRBDF3 integration scheme. It is based in part on the
34 // two part algorithm of Bathe that is now coded as TRBDF2. Note that TRBDF2
35 // is actually described in an earlier paper by Bathe, as well as the basis
36 // for TRBDF3 used here:
37 // ref: K.J.Bathe and M.M.I. Baige, "On a composite implicit time integration procedure
38 // for nonlinear dynamics", Computers and Structures 83(2005),2513-2524
39 //
40 // But here we further subdivide the step into a total of 3 sub-steps with the first being
41 // trapezoid rule, second three point backward Euler, and third is Houbolt (although
42 // technically he notes in the paper that he uses a 3 sub-step procedure with 2 trapezoid
43 // steps followed by Houbolt).
44 //
45 // note: the implementation does not do sub-step, it just cycles between trapezoidal,
46 // euler methods, and Houbolt. So to compare to paper or to Newmark or some other analysis,
47 // user should specify dt/3 step size.
48 //
49 // What: "@(#) TRBDF3.h, revA"
50 
51 #include "solution/analysis/integrator/transient/TRBDFBase.h"
52 namespace XC {
53 
54 class TRBDF3: public TRBDFBase
55  {
56  private:
57  ResponseQuantities Utm2;
58  protected:
59  virtual void resize(const size_t &);
60  int sendData(Communicator &);
61  int recvData(const Communicator &);
62  public:
64  Integrator *getCopy(void) const;
65 
66  // methods which define what the FE_Element and DOF_Groups add
67  // to the system of equation object.
68 
69  int newStep(double deltaT);
70  int update(const Vector &deltaU);
71 
72  int sendSelf(Communicator &);
73  int recvSelf(const Communicator &);
74  };
75 } // end of XC namespace
76 
77 #endif
Float vector abstraction.
Definition: Vector.h:94
Communication parameters between processes.
Definition: Communicator.h:66
Integrator * getCopy(void) const
Virtual constructor.
Definition: TRBDF3.cpp:75
Definition: TRBDFBase.h:72
Base class for the objects that performs the integration of physical properties over the domain to fo...
Definition: Integrator.h:100
Solution strategy for the finite element problem.
Definition: SolutionStrategy.h:94
Definition: TRBDF3.h:54
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
Response quantities.
Definition: ResponseQuantities.h:42
TRBDF3(SolutionStrategy *)
Constructor.
Definition: TRBDF3.cpp:69
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: TRBDF3.cpp:222
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: TRBDF3.cpp:214
virtual void resize(const size_t &)
Resize vector data.
Definition: TRBDF3.cpp:167