⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timinteg.hxx

📁 不错的国外的有限元程序代码,附带详细的manual,可以节省很多的底层工作.
💻 HXX
字号:

//   *************************************
//   *** CLASS TIME INTEGRATION SCHEME ***
//   *************************************


#ifndef timinteg_hxx

#include "femcmpnn.hxx"
#include "timestep.hxx"
#include "string.hxx"


class TimeIntegrationScheme : public FEMComponent
/*
   This abstract class is the superclass of the classes that implement time
   integration algorithms (Newmark, quasi-static,...). A time integration is
   an attribute of the domain.
 DESCRIPTION :
   'numberOfSteps' is the number of time steps the problem consists in.
   'currentStep' is the time step currently solved. 'previousStep' is the
   former time step.
 TASKS :
   - managing the time history of the problem :
       .returning (including updating) the current time step and the previous
	one ;
       .storing and returning the coefficients of the finite difference
	formula ;
   - saying if elemental left-hand sides
       .are diagonal ;
       .need being recalculated and reassembled at any time step.
*/
{
   protected :
      int            numberOfSteps ;
      TimeStep*      currentStep ;
      TimeStep*      previousStep ;

      enum { FALSE , TRUE } ;

   public :
      TimeIntegrationScheme (int,Domain*) ;
      virtual ~TimeIntegrationScheme ()
			       { delete currentStep ; delete previousStep ;}

      // definition of the type (Newmark, Static, etc)
      virtual int             isNewmark ()         { return FALSE ;}
      virtual int             isStatic ()          { return FALSE ;}
      TimeIntegrationScheme*  typed () ;

      // coefficients of the finite difference formula
      virtual double          giveAlpha ()         { return 0. ;}
      virtual double          giveBeta ()          { return 0. ;}
      virtual double          giveGamma ()         { return 0. ;}

      // management of the time steps
      TimeStep*               giveCurrentStep ()   { return currentStep ;}
      virtual TimeStep*       GiveInitialStep () ;
      TimeStep*               giveNextStep () ;
      int                     giveNumberOfSteps () ;
      TimeStep*               givePreviousStep ()  { return previousStep ;}

      // effect on elemental left-hand side (diagonal, invariant, etc)
      virtual int             hasDiagonalLhs ()    { return FALSE ;}
      virtual int             requiresNewLhsAt (TimeStep*) ;

      // miscellaneous
      char*                   giveClassName (char* s)
			       { return strcpy(s,"TimeIntegrationScheme") ;}
      void                    updateYourself () ;
} ;

#define timinteg_hxx
#endif








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -