Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
GalerkinGlideSolver.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef model_GalerkinGlideSolver_h_
9#define model_GalerkinGlideSolver_h_
10
11//#include <PlanarDislocationNode.h>
12
13
14#ifndef NDEBUG
15#define VerboseGalerkinGlideSolver(N,x) if(verboseGalerkinGlideSolver>=N){std::cout<<x;}
16#else
17#define VerboseGalerkinGlideSolver(N,x)
18#endif
19
22namespace model
23{
24 template<int dim> class DislocationNetwork;
25
26 template <int dim>
27// template<int dim,int corder>
29 {
30// typedef DislocationNetwork<dim,corder> DislocationNetwork<dim>;
31 typedef typename DislocationNetwork<dim>::VectorDim VectorDim;
32 typedef typename DislocationNetwork<dim>::MatrixDim MatrixDim;
33 typedef typename DislocationNetwork<dim>::NetworkNodeType NetworkNodeType;
34 typedef typename DislocationNetwork<dim>::LoopNodeType LoopNodeType;
35 typedef typename DislocationNetwork<dim>::LoopType LoopType;
36
37 typedef Eigen::SparseMatrix<double> SparseMatrixType;
38 // typedef std::vector<Eigen::Triplet<double> > TripletContainerType;
39 typedef std::deque<Eigen::Triplet<double> > TripletContainerType;
40// enum {NdofXnode=NodeType::NdofXnode};
41 constexpr static int NdofXnode=NetworkNodeType::NdofXnode;
42
43
44// void lumpedSolve();
45// void solve(const size_t& runID);
46 Eigen::VectorXd lumpedSolve() const;
47 size_t assembleNCtriplets(TripletContainerType& kqqT, Eigen::VectorXd& Fq) const;
48// void storeNodeSolution(const Eigen::VectorXd& X);
49 size_t assemblePeriodicConstraints(TripletContainerType& zT) const;
50
51
52 public:
53
55 Eigen::VectorXd getNodeVelocities() const override;
56
57
58 };
59
60}
61#endif
TraitsType::VectorDim VectorDim
TraitsType::LoopType LoopType
TraitsType::LoopNodeType LoopNodeType
TraitsType::NetworkNodeType NetworkNodeType
TraitsType::MatrixDim MatrixDim
GalerkinGlideSolver(const DislocationNetwork< dim > &)
Eigen::VectorXd getNodeVelocities() const override
DislocationGlideSolverBase(const DislocationNetwork< dim > &)