NuTo
Numerics Tool
QuasistaticSolver.h
Go to the documentation of this file.
1 #pragma once
2 
6 #include <iosfwd>
7 
8 namespace NuTo
9 {
11 {
12 public:
17 
21  QuasistaticSolver(TimeDependentProblem& equations, std::vector<DofType> dofs);
22 
24  void SetConstraints(Constraint::Constraints constraints);
25 
28  void SetGlobalTime(double globalTime);
29 
34 
37  void UpdateHistory(const DofVector<double>& x);
38 
42 
46 
47 
50  double Norm(const DofVector<double>& residual) const;
51 
52 
55  void Info(int i, const DofVector<double>& x, const DofVector<double>& r) const;
56 
57 
59  double mTolerance = 1.e-10;
60 
61 
66  int DoStep(double newGlobalTime, std::string solverType = "EigenSparseLU");
67 
73  void WriteTimeDofResidual(std::ostream& out, DofType dofType, std::vector<int> dofNumbers);
74 
75 private:
78 
79  TimeDependentProblem& mProblem;
80  Constraint::Constraints mConstraints;
81 
82  std::vector<DofType> mDofs;
83  DofMatrixSparse<double> mCmatUnit;
84 
85  double mGlobalTime = 0;
86  double mTimeStep = 0;
87 };
88 
89 } /* NuTo */
Definition: Solve.h:17
void UpdateHistory(const DofVector< double > &x)
calculates and stores the history variables for the state x
Definition: QuasistaticSolver.cpp:79
DofVector< double > Residual(const DofVector< double > &u)
evaluates the residual R(u), part of NuTo::NewtonRaphson::Problem
Definition: QuasistaticSolver.cpp:68
DofMatrixSparse< double > Derivative(const DofVector< double > &u)
evaluates the derivative dR/dx, part of NuTo::NewtonRaphson::Problem
Definition: QuasistaticSolver.cpp:74
Definition: QuasistaticSolver.h:10
Definition: DofType.h:8
solver
Definition: SparseDirectSolverMKLDSS.py:51
stores constraint equations, separated by their dof type
Definition: Constraints.h:47
Equation system that contains R(u, u&#39;) + M u&#39;&#39; = 0 with R = Gradient dR/du = Hessian0 dR/du&#39; = Hessia...
Definition: TimeDependentProblem.h:18
DofVector< double > TrialState(double newGlobalTime, const NuTo::ConstrainedSystemSolver &solver)
computes the trial state of the system
Definition: QuasistaticSolver.cpp:51
residual
Definition: Brick8NCoupling.py:135
int DoStep(double newGlobalTime, std::string solverType="EigenSparseLU")
Updates mProblem to time newGlobalTime and saves the new state mX upon convergence.
Definition: QuasistaticSolver.cpp:116
void WriteTimeDofResidual(std::ostream &out, DofType dofType, std::vector< int > dofNumbers)
Writes the current time, the mean dof values and the sum of the residual into out, only for the given dof type and given dof numbers.
Definition: QuasistaticSolver.cpp:97
void SetGlobalTime(double globalTime)
sets the global time required for evaluating the constraint right hand side
Definition: QuasistaticSolver.cpp:45
dof container that is also capable of performing calculations.
Definition: DofMatrixContainer.h:13
void Info(int i, const DofVector< double > &x, const DofVector< double > &r) const
prints values during the newton iterations, part of NuTo::NewtonRaphson::Problem
Definition: QuasistaticSolver.cpp:92
Definition: Exception.h:6
QuasistaticSolver(TimeDependentProblem &equations, DofType dof)
Ctor.
Definition: QuasistaticSolver.cpp:17
double Norm(const DofVector< double > &residual) const
evaluates the norm of R, part of NuTo::NewtonRaphson::Problem
Definition: QuasistaticSolver.cpp:84
u
Definition: TimeIntegrationResultForce.py:12
void SetConstraints(Constraint::Constraints constraints)
Definition: QuasistaticSolver.cpp:29
double mTolerance
tolerance for Norm(R), public member because it is part of NuTo::NewtonRaphson::Problem ...
Definition: QuasistaticSolver.h:59