19 #ifndef itkFEMSolverHyperbolic_h
20 #define itkFEMSolverHyperbolic_h
35 template <
unsigned int TDimension = 3>
53 itkSetMacro(Gamma,
Float);
54 itkGetMacro(Gamma,
Float);
58 itkSetMacro(Beta,
Float);
59 itkGetMacro(Beta,
Float);
63 itkSetMacro(NumberOfIterations,
unsigned int);
64 itkGetMacro(NumberOfIterations,
unsigned int);
70 return this->m_TimeStep;
80 this->m_TimeStep = dt;
86 void PrintSelf(std::ostream& os,
Indent indent)
const ITK_OVERRIDE;
89 virtual void InitializeLinearSystemWrapper(
void) ITK_OVERRIDE;
95 virtual
void AssembleElementMatrix(
Element::Pointer
e) ITK_OVERRIDE;
98 virtual
void InitializeMatrixForAssembly(
unsigned int N) ITK_OVERRIDE;
104 virtual
void FinalizeMatrixAfterAssembly(
void ) ITK_OVERRIDE;
108 void GenerateData() ITK_OVERRIDE;
112 virtual
void RunSolver(
void) ITK_OVERRIDE;
118 enum { matrix_K=1, matrix_M=2, matrix_C=3, matrix_tmp=4 };
121 enum { solution_d=0, solution_v=1, solution_a=2};
122 enum { vector_dhat=2, vector_vhat=3, vector_ahat=4, vector_tmp=5 };
136 #ifndef ITK_MANUAL_INSTANTIATION
137 #include "itkFEMSolverHyperbolic.hxx"
141 #endif // #ifndef itkFEMSolverHyperbolic_h
Solver< TDimension > Superclass
Light weight base class for most itk classes.
unsigned int m_NumberOfIterations
SmartPointer< Self > Pointer
SmartPointer< const Self > ConstPointer
FEM solver used to generate a solution for a FE formulation.
Abstract base element class.
Control indentation during Print() invocation.
virtual Float GetTimeStep(void) const override
Solver class suitable for hyperbolic problems.M*ddu + C*du + K*u=F.
virtual void SetTimeStep(Float dt) override
static ITK_CONSTEXPR_VAR double e
The base of the natural logarithm or Euler's number
virtual ~SolverHyperbolic() override