#include <itkFEMSolverCrankNicolson.h>
Inheritance diagram for itk::fem::SolverCrankNicolson:
This is the main class used for solving FEM time-dependent problems. It solves the following problem:
( M + alpha*dt* K )*U_t=(M - (1.- alpha)*dt* K)* U_{t-1} + dt*(alpha*f_{n+1} + (1-alpha)*f_n)
which is the Crank-Nicolson formulation of the static problem if alpha=0.5. The static solution is gained if : rho = 0.0; alpha = 1.0; dt = 1.0; Practically, it is good to set rho to something small (for the itpack solver). The advantage of choosing alpha=0.5 is that the solution is then stable for any choice of time step, dt. This class inherits and uses most of the Solver class functionality. One must call AssembleKandM instead of AssembleK and AssembleFforTimeStep instead of AssembleF. FIXMEs: 1) Members should be privatized, etc. 2) We should also account for the contribution to the force from essential BCs. Basically there are terms involving M * (\dot g_b) and K * g_b where g_b is the essential BC vector.
Definition at line 63 of file itkFEMSolverCrankNicolson.h.
|
Default constructor which sets the indices for the matrix and vector storage. Time step and other parameters are also initialized. Definition at line 141 of file itkFEMSolverCrankNicolson.h. References DifferenceMatrixIndex, DiffMatrixBySolutionTMinus1Index, ForceTIndex, ForceTMinus1Index, ForceTotalIndex, m_alpha, SolutionTIndex, SolutionTMinus1Index, SolutionVectorTMinus1Index, SumMatrixIndex, and TotalSolutionIndex. |
|
Definition at line 160 of file itkFEMSolverCrankNicolson.h. References itk::fem::Solver::Float, and m_alpha. |
|
add solution vector u to the corresponding nodal values, which are stored in node objects). This is standard post processing of the solution |
|
Assemble the master force vector at a given time.
|
|
Assemble the master stiffness and mass matrix. We actually assemble the right hand side and left hand side of the implicit scheme equation. |
|
add solution vector u to the corresponding nodal values, which are stored in node objects). This is standard post processing of the solution |
|
Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual; |
|
Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual; |
|
|
|
Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual; |
|
Definition at line 132 of file itkFEMSolverCrankNicolson.h. |
|
Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual; |
|
Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual; Definition at line 128 of file itkFEMSolverCrankNicolson.h. References itk::fem::Solver::Float, and itk::fem::Solver::m_ls. |
|
Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual; Definition at line 127 of file itkFEMSolverCrankNicolson.h. |
|
|
|
add solution vector u to the corresponding nodal values, which are stored in node objects). This is standard post processing of the solution |
|
add solution vector u to the corresponding nodal values, which are stored in node objects). This is standard post processing of the solution |
|
Compute and print the minimum and maximum of the total solution and the last solution. |
|
compute the current state of the right hand side and store the current force for the next iteration. |
|
Set stability step for the solution. Definition at line 104 of file itkFEMSolverCrankNicolson.h. |
|
Set time step for the solution. Should be 1/2. Definition at line 107 of file itkFEMSolverCrankNicolson.h. |
|
|
|
Set density constant. Definition at line 110 of file itkFEMSolverCrankNicolson.h. |
|
Solve for the displacement vector u at a given time. Update the total solution as well. Reimplemented from itk::fem::Solver. |
|
add solution vector u to the corresponding nodal values, which are stored in node objects). This is standard post processing of the solution |
|
Definition at line 173 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 175 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 166 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 168 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 167 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 164 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(), and ~SolverCrankNicolson(). |
|
Definition at line 162 of file itkFEMSolverCrankNicolson.h. Referenced by GetLS(). |
|
Definition at line 163 of file itkFEMSolverCrankNicolson.h. Referenced by GetLS(). |
|
Definition at line 169 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 170 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 171 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 174 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |
|
Definition at line 172 of file itkFEMSolverCrankNicolson.h. Referenced by SolverCrankNicolson(). |