3 #ifndef DUNE_PDELAB_BOILERPLATE_PDELAB_HH 4 #define DUNE_PDELAB_BOILERPLATE_PDELAB_HH 21 #include <dune/common/parallel/mpihelper.hh> 22 #include <dune/common/parametertreeparser.hh> 23 #include <dune/common/classname.hh> 24 #include <dune/common/exceptions.hh> 25 #include <dune/common/filledarray.hh> 26 #include <dune/common/fvector.hh> 28 #include <dune/geometry/type.hh> 29 #include <dune/geometry/quadraturerules.hh> 31 #include <dune/grid/onedgrid.hh> 32 #include <dune/grid/io/file/vtk.hh> 33 #include <dune/grid/yaspgrid.hh> 35 #include <dune/grid/uggrid.hh> 38 #include<dune/grid/albertagrid.hh> 39 #include <dune/grid/albertagrid/dgfparser.hh> 42 #include<dune/grid/uggrid.hh> 45 #include<dune/alugrid/grid.hh> 46 #include <dune/alugrid/dgf.hh> 48 #include <dune/grid/utility/structuredgridfactory.hh> 49 #include <dune/grid/io/file/gmshreader.hh> 51 #include <dune/istl/bvector.hh> 52 #include <dune/istl/operators.hh> 53 #include <dune/istl/solvers.hh> 54 #include <dune/istl/solvercategory.hh> 55 #include <dune/istl/preconditioners.hh> 56 #include <dune/istl/io.hh> 58 #include <dune/istl/paamg/amg.hh> 94 typedef typename T::ctype
ctype;
95 static const int dim = T::dimension;
101 FieldVector<ctype,dimworld> lowerLeft(0.0);
102 FieldVector<ctype,dimworld> upperRight(1.0);
103 std::array<unsigned int,dim> elements; elements.fill(cells);
105 StructuredGridFactory<T> factory;
107 if (meshtype==Dune::GeometryType::cube)
108 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
109 else if (meshtype==Dune::GeometryType::simplex)
110 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
113 DUNE_THROW(GridError, className<StructuredGrid>()
114 <<
"::StructuredGrid(): grid type must be simplex or cube ");
120 std::array<double,dimworld> lower_left, std::array<double,dimworld> upper_right,
121 std::array<unsigned int,dim> cells)
123 FieldVector<ctype,dimworld> lowerLeft;
124 FieldVector<ctype,dimworld> upperRight;
125 std::array<unsigned int,dim> elements;
130 lowerLeft[i] = lower_left[i];
131 upperRight[i] = upper_right[i];
133 for (
size_t i=0; i<
dim; i++)
135 elements[i] = cells[i];
138 StructuredGridFactory<T> factory;
140 if (meshtype==Dune::GeometryType::cube)
141 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
142 else if (meshtype==Dune::GeometryType::simplex)
143 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
146 DUNE_THROW(GridError, className<StructuredGrid>()
147 <<
"::StructuredGrid(): grid type must be simplex or cube ");
176 return gridp.operator->();
186 return gridp.operator->();
191 std::shared_ptr<T> gridp;
206 StructuredGrid (Dune::GeometryType::BasicType meshtype,
unsigned int cells,
int overlap=1)
209 if (meshtype!=Dune::GeometryType::cube)
210 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
213 Dune::FieldVector<double,dimworld> L(1.0);
214 std::array<int,dimworld> N(Dune::filledArray<dimworld, int>(cells));
215 std::bitset<dimworld> B(
false);
218 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
223 std::array<double,dimworld> lower_left, std::array<double,dimworld> upper_right,
224 std::array<unsigned int,dim> cells,
int overlap=1)
228 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
229 DUNE_THROW(GridError, className<StructuredGrid>()
230 <<
"::createCubeGrid(): The lower coordinates " 231 "must be at the origin for YaspGrid.");
234 if (meshtype!=Dune::GeometryType::cube)
235 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
238 Dune::FieldVector<double,dimworld> L;
239 std::array<int,dimworld> N;
240 std::bitset<dimworld> B(
false);
243 L[i] = upper_right[i];
248 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
253 std::array<double,dimworld> lower_left, std::array<double,dimworld> upper_right,
254 std::array<unsigned int,dim> cells, std::array<bool,dim>
periodic,
int overlap=1)
258 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
259 DUNE_THROW(GridError, className<StructuredGrid>()
260 <<
"::createCubeGrid(): The lower coordinates " 261 "must be at the origin for YaspGrid.");
264 if (meshtype!=Dune::GeometryType::cube)
265 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
268 Dune::FieldVector<double,dimworld> L;
269 std::array<int,dimworld> N;
270 std::bitset<dimworld> B(
false);
273 L[i] = upper_right[i];
279 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
307 return gridp.operator->();
317 return gridp.operator->();
321 std::shared_ptr<Grid> gridp;
332 static const int dim = T::dimension;
336 UnstructuredGrid (std::string filename,
bool verbose =
true,
bool insert_boundary_segments=
true)
338 Dune::GridFactory<T> factory;
339 Dune::GmshReader<T>::read(factory,filename,verbose,insert_boundary_segments);
340 gridp = std::shared_ptr<T>(factory.createGrid());
368 return gridp.operator->();
378 return gridp.operator->();
382 std::shared_ptr<T> gridp;
391 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim, Dune::GeometryType::BasicType gt>
395 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
403 femp = std::shared_ptr<FEM>(
new FEM(gridview));
407 const FEM&
getFEM()
const {
return *femp;}
410 std::shared_ptr<FEM> femp;
413 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
421 femp = std::shared_ptr<FEM>(
new FEM(gridview));
425 const FEM&
getFEM()
const {
return *femp;}
428 std::shared_ptr<FEM> femp;
440 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt, MeshType mt, SolverCategory::Category st,
typename BCType,
typename GV =
typename Gr
id::LeafGr
idView>
444 template<
typename Gr
id,
typename BCType,
typename GV>
452 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
457 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
460 template<
typename GFS>
463 const CON&
getCON()
const {
return *conp;}
464 template<
typename GFS,
typename DOF>
467 std::shared_ptr<CON> conp;
470 template<
typename Gr
id,
typename BCType,
typename GV>
478 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
483 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
486 template<
typename GFS>
489 const CON&
getCON()
const {
return *conp;}
490 template<
typename GFS,
typename DOF>
493 std::shared_ptr<CON> conp;
496 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
504 conp = std::shared_ptr<CON>(
new CON());
509 conp = std::shared_ptr<CON>(
new CON());
512 template<
typename GFS>
515 const CON&
getCON()
const {
return *conp;}
516 template<
typename GFS,
typename DOF>
519 std::shared_ptr<CON> conp;
522 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
530 conp = std::shared_ptr<CON>(
new CON());
535 conp = std::shared_ptr<CON>(
new CON());
538 template<
typename GFS>
541 const CON&
getCON()
const {
return *conp;}
542 template<
typename GFS,
typename DOF>
549 if (gfs.gridView().comm().size()>1)
550 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
553 std::shared_ptr<CON> conp;
556 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
563 conp = std::shared_ptr<CON>(
new CON);
566 template<
typename GFS>
569 template<
typename GFS,
typename DOF>
572 std::shared_ptr<CON> conp;
577 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
578 Dune::GeometryType::BasicType gt,
MeshType mt, SolverCategory::Category st = SolverCategory::sequential,
585 typedef typename T::LeafGridView
GV;
587 static const int dim = T::dimension;
593 typedef typename FEMB::FEM
FEM;
594 typedef typename CONB::CON
CON;
602 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
607 : gv(grid.leafGridView()), femb(gv), conb(grid,bctype)
609 gfsp = std::shared_ptr<GFS>(
new GFS(gv,femb.getFEM(),conb.getCON()));
610 gfsp->name(
"cgspace");
613 conb.postGFSHook(*gfsp);
614 ccp = std::shared_ptr<CC>(
new CC());
619 return femb.getFEM();
624 return femb.getFEM();
665 conb.make_consistent(*gfsp,x);
671 conb.make_consistent(*gfsp,x);
677 conb.make_consistent(*gfsp,xout);
683 conb.make_consistent(*gfsp,xout);
690 std::shared_ptr<GFS> gfsp;
691 std::shared_ptr<CC> ccp;
695 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
696 Dune::GeometryType::BasicType gt,
MeshType mt,
698 class CGSpace<T, N, degree, BCType, gt, mt, SolverCategory::nonoverlapping, VBET> {
703 typedef typename T::LeafGridView
GV;
706 static const int dim = T::dimension;
712 typedef typename FEMB::FEM
FEM;
713 typedef typename CONB::CON
CON;
721 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
726 : gv(grid.leafGridView()), es(gv), femb(es), conb(grid,bctype)
728 gfsp = std::shared_ptr<GFS>(
new GFS(es,femb.getFEM(),conb.getCON()));
729 gfsp->name(
"cgspace");
733 ccp = std::shared_ptr<CC>(
new CC());
738 return femb.getFEM();
743 return femb.getFEM();
784 conb.make_consistent(*gfsp,x);
790 conb.make_consistent(*gfsp,x);
796 conb.make_consistent(*gfsp,xout);
802 conb.make_consistent(*gfsp,xout);
810 std::shared_ptr<GFS> gfsp;
811 std::shared_ptr<CC> ccp;
821 template<SolverCategory::Category st>
832 conp = std::shared_ptr<CON>(
new CON());
835 const CON&
getCON()
const {
return *conp;}
836 template<
typename GFS,
typename DOF>
839 std::shared_ptr<CON> conp;
849 conp = std::shared_ptr<CON>(
new CON());
852 const CON&
getCON()
const {
return *conp;}
853 template<
typename GFS,
typename DOF>
856 std::shared_ptr<CON> conp;
866 conp = std::shared_ptr<CON>(
new CON());
869 const CON&
getCON()
const {
return *conp;}
870 template<
typename GFS,
typename DOF>
877 if (gfs.gridView().comm().size()>1)
878 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
881 std::shared_ptr<CON> conp;
886 template<
typename T,
typename N,
unsigned int degree,
887 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
895 typedef typename T::LeafGridView
GV;
897 static const int dim = T::dimension;
906 typedef typename CONB::CON
CON;
911 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
917 femp = std::shared_ptr<FEM>(
new FEM());
918 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
921 ccp = std::shared_ptr<CC>(
new CC());
925 const FEM&
getFEM()
const {
return *femp; }
931 const GFS&
getGFS ()
const {
return *gfsp;}
937 const CC&
getCC ()
const {
return *ccp;}
939 template<
class BCTYPE>
954 conb.make_consistent(*gfsp,x);
960 conb.make_consistent(*gfsp,x);
966 conb.make_consistent(*gfsp,xout);
972 conb.make_consistent(*gfsp,xout);
978 std::shared_ptr<FEM> femp;
979 std::shared_ptr<GFS> gfsp;
980 std::shared_ptr<CC> ccp;
985 template<
typename T,
typename N,
unsigned int degree,
986 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
995 typedef typename T::LeafGridView
GV;
997 static const int dim = T::dimension;
1006 typedef typename CONB::CON
CON;
1011 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1017 femp = std::shared_ptr<FEM>(
new FEM());
1018 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1021 ccp = std::shared_ptr<CC>(
new CC());
1037 const CC&
getCC ()
const {
return *ccp;}
1039 template<
class BCTYPE>
1054 conb.make_consistent(*gfsp,x);
1060 conb.make_consistent(*gfsp,x);
1066 conb.make_consistent(*gfsp,xout);
1072 conb.make_consistent(*gfsp,xout);
1078 std::shared_ptr<FEM> femp;
1079 std::shared_ptr<GFS> gfsp;
1080 std::shared_ptr<CC> ccp;
1085 template<
typename T,
typename N,
unsigned int degree,
1086 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1094 typedef typename T::LeafGridView
GV;
1096 static const int dim = T::dimension;
1099 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim>
FEM;
1101 typedef typename CONB::CON
CON;
1106 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1112 femp = std::shared_ptr<FEM>(
new FEM());
1113 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1116 ccp = std::shared_ptr<CC>(
new CC());
1132 const CC&
getCC ()
const {
return *ccp;}
1134 template<
class BCTYPE>
1149 conb.make_consistent(*gfsp,x);
1155 conb.make_consistent(*gfsp,x);
1161 conb.make_consistent(*gfsp,xout);
1167 conb.make_consistent(*gfsp,xout);
1173 std::shared_ptr<FEM> femp;
1174 std::shared_ptr<GFS> gfsp;
1175 std::shared_ptr<CC> ccp;
1180 template<
typename T,
typename N,
unsigned int degree,
1181 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1190 typedef typename T::LeafGridView
GV;
1192 static const int dim = T::dimension;
1195 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim,QkDGBasisPolynomial::lobatto>
FEM;
1197 typedef typename CONB::CON
CON;
1202 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1208 femp = std::shared_ptr<FEM>(
new FEM());
1209 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1212 ccp = std::shared_ptr<CC>(
new CC());
1228 const CC&
getCC ()
const {
return *ccp;}
1230 template<
class BCTYPE>
1245 conb.make_consistent(*gfsp,x);
1251 conb.make_consistent(*gfsp,x);
1257 conb.make_consistent(*gfsp,xout);
1263 conb.make_consistent(*gfsp,xout);
1269 std::shared_ptr<FEM> femp;
1270 std::shared_ptr<GFS> gfsp;
1271 std::shared_ptr<CC> ccp;
1276 template<
typename T,
typename N,
unsigned int degree,
1277 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1286 typedef typename T::LeafGridView
GV;
1288 static const int dim = T::dimension;
1291 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim,QkDGBasisPolynomial::legendre>
FEM;
1293 typedef typename CONB::CON
CON;
1298 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1304 femp = std::shared_ptr<FEM>(
new FEM());
1305 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1308 ccp = std::shared_ptr<CC>(
new CC());
1324 const CC&
getCC ()
const {
return *ccp;}
1326 template<
class BCTYPE>
1341 conb.make_consistent(*gfsp,x);
1347 conb.make_consistent(*gfsp,x);
1353 conb.make_consistent(*gfsp,xout);
1359 conb.make_consistent(*gfsp,xout);
1365 std::shared_ptr<FEM> femp;
1366 std::shared_ptr<GFS> gfsp;
1367 std::shared_ptr<CC> ccp;
1372 template<
typename T,
typename N,
1373 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1381 typedef typename T::LeafGridView
GV;
1383 static const int dim = T::dimension;
1388 typedef typename CONB::CON
CON;
1393 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1397 P0Space (
const GV& gridview) : gv(gridview), conb()
1399 femp = std::shared_ptr<FEM>(
new FEM(Dune::GeometryType(gt,dim)));
1400 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1403 ccp = std::shared_ptr<CC>(
new CC());
1419 const CC&
getCC ()
const {
return *ccp;}
1421 template<
class BCTYPE>
1436 conb.make_consistent(*gfsp,x);
1442 conb.make_consistent(*gfsp,x);
1448 conb.make_consistent(*gfsp,xout);
1454 conb.make_consistent(*gfsp,xout);
1460 std::shared_ptr<FEM> femp;
1461 std::shared_ptr<GFS> gfsp;
1462 std::shared_ptr<CC> ccp;
1468 template<
typename FS,
typename Functor>
1470 :
public GridFunctionBase<GridFunctionTraits<typename FS::GV, typename FS::NT,
1471 1,FieldVector<typename FS::NT,1> >
1472 ,UserFunction<FS,Functor> >
1489 std::vector<double> x__(x.size());
1490 for (
size_t i=0; i<x.size(); ++i) x__[i]=x_[i];
1496 return fs.getGFS().gridView();
1505 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1512 typename FS::NT,
typename FS::NT,
typename FS::NT,
1513 typename FS::CC,
typename FS::CC>
GO;
1518 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,MBE(nonzeros)));
1540 return gop.operator->();
1550 return gop.operator->();
1554 std::shared_ptr<GO> gop;
1558 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1565 typename FS::NT,
typename FS::NT,
typename FS::NT,
1566 typename FS::CC,
typename FS::CC>
GO;
1571 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,mbe));
1593 return gop.operator->();
1603 return gop.operator->();
1607 std::shared_ptr<GO> gop;
1612 template<
typename FSU,
typename FSV,
typename LOP, SolverCategory::Category st>
1619 typename FSU::NT,
typename FSU::NT,
typename FSU::NT,
1620 typename FSU::CC,
typename FSV::CC>
GO;
1625 gop = std::shared_ptr<GO>(
new GO(fsu.getGFS(),fsu.getCC(),fsv.getGFS(),fsv.getCC(),lop,MBE(nonzeros)));
1647 return gop.operator->();
1657 return gop.operator->();
1661 std::shared_ptr<GO> gop;
1665 template<
typename GO1,
typename GO2,
bool implicit = true>
1676 gop = std::shared_ptr<GO>(
new GO(*go1,*go2));
1698 return gop.operator->();
1708 return gop.operator->();
1712 std::shared_ptr<GO> gop;
1717 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1725 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1727 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_,reuse_,usesuperlu_));
1731 const LS&
getLS ()
const {
return *lsp;}
1738 std::shared_ptr<LS> lsp;
1742 template<
typename FS,
typename ASS>
1750 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1752 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1756 const LS&
getLS ()
const {
return *lsp;}
1763 std::shared_ptr<LS> lsp;
1767 template<
typename FS,
typename ASS>
1775 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1777 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1781 const LS&
getLS ()
const {
return *lsp;}
1788 std::shared_ptr<LS> lsp;
1792 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1800 int steps_=5,
int verbose_=1)
1802 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1806 const LS&
getLS ()
const {
return *lsp;}
1813 std::shared_ptr<LS> lsp;
1817 template<
typename FS,
typename ASS>
1825 int steps_=5,
int verbose_=1)
1827 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,steps_,verbose_));
1831 const LS&
getLS ()
const {
return *lsp;}
1838 std::shared_ptr<LS> lsp;
1842 template<
typename FS,
typename ASS>
1850 int steps_=5,
int verbose_=1)
1852 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,steps_,verbose_));
1856 const LS&
getLS ()
const {
return *lsp;}
1863 std::shared_ptr<LS> lsp;
1869 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1878 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1882 const LS&
getLS ()
const {
return *lsp;}
1889 std::shared_ptr<LS> lsp;
1893 template<
typename FS,
typename ASS>
1902 lsp = std::shared_ptr<LS>(
new LS(ass.getGO(),maxiter_,3,verbose_));
1906 const LS&
getLS ()
const {
return *lsp;}
1913 std::shared_ptr<LS> lsp;
1917 template<
typename FS,
typename ASS>
1926 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,3,verbose_));
1930 const LS&
getLS ()
const {
return *lsp;}
1937 std::shared_ptr<LS> lsp;
1942 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1951 lsp = std::shared_ptr<LS>(
new LS());
1955 const LS&
getLS ()
const {
return *lsp;}
1962 std::shared_ptr<LS> lsp;
1967 template<
typename FS,
typename ASS>
1976 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
1980 const LS&
getLS ()
const {
return *lsp;}
1987 std::shared_ptr<LS> lsp;
1992 template<
typename FS,
typename ASS>
2001 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
2005 const LS&
getLS ()
const {
return *lsp;}
2012 std::shared_ptr<LS> lsp;
2019 #endif // DUNE_PDELAB_BOILERPLATE_PDELAB_HH Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1010
const GFS & getGFS() const
Definition: pdelab.hh:1318
void clearConstraints()
Definition: pdelab.hh:776
const FEM & getFEM() const
Definition: pdelab.hh:741
GO::Jacobian MAT
Definition: pdelab.hh:1672
R RangeType
range type
Definition: function.hh:61
Dune::PDELab::Backend::Matrix< MB, Domain, Range, JF > Jacobian
The type of the jacobian.
Definition: gridoperator.hh:47
StructuredGrid(Dune::GeometryType::BasicType meshtype, std::array< double, dimworld > lower_left, std::array< double, dimworld > upper_right, std::array< unsigned int, dim > cells, std::array< bool, dim > periodic, int overlap=1)
Definition: pdelab.hh:252
DGQkSpace(const GV &gridview)
Definition: pdelab.hh:1110
Definition: pdelab.hh:1375
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:419
periodic boundary intersection (neighbor() == true && boundary() == true)
const CON & getCON() const
Definition: pdelab.hh:463
CON & getCON()
Definition: pdelab.hh:834
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:455
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1009
NoConstraints CON
Definition: pdelab.hh:829
Parallel P0 constraints for nonoverlapping grids with ghosts.
Definition: p0ghost.hh:16
T::ctype ctype
Definition: pdelab.hh:94
CGCONBase< Grid, degree, gt, mt, st, BCType > CONB
Definition: pdelab.hh:591
Definition: pdelab.hh:1793
ISTLBackend_OVLP_CG_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1847
Definition: pdelab.hh:1088
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1008
OverlappingConformingDirichletConstraints CON
Definition: pdelab.hh:526
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:871
const LS * operator->() const
Definition: pdelab.hh:1760
LS & getLS()
Definition: pdelab.hh:1755
const Entity & e
Definition: localfunctionspace.hh:120
const GFS & getGFS() const
Definition: pdelab.hh:753
T::ctype ctype
Definition: pdelab.hh:996
leaf of a function tree
Definition: function.hh:298
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1063
void set_constrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
construct constraints from given boundary condition function
Definition: constraints.hh:798
Definition: pdelab.hh:1718
LS & getLS()
Definition: pdelab.hh:1881
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:528
convert a grid function space and a coefficient vector into a grid function
Definition: gridfunctionspaceutilities.hh:53
const LS & operator*() const
Definition: pdelab.hh:1885
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:481
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1439
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1350
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:837
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:597
DGPkSpace(const GV &gridview)
Definition: pdelab.hh:915
T::ctype ctype
Definition: pdelab.hh:704
const CC & getCC() const
Definition: pdelab.hh:1037
Definition: pdelab.hh:1559
T * operator->()
Definition: pdelab.hh:366
CC & getCC()
Definition: pdelab.hh:934
LS & getLS()
Definition: pdelab.hh:1929
const CC & getCC() const
Definition: pdelab.hh:765
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:502
A grid function space.
Definition: gridfunctionspace.hh:166
GFS & getGFS()
Definition: pdelab.hh:928
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1974
LS * operator->()
Definition: pdelab.hh:1783
ISTLSolverBackend_CG_AMG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1, bool reuse_=false, bool usesuperlu_=true)
Definition: pdelab.hh:1724
const T & operator*() const
Definition: pdelab.hh:179
GlobalAssembler(const FSU &fsu, const FSV &fsv, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1623
const CC & getCC() const
Definition: pdelab.hh:1419
N NT
Definition: pdelab.hh:1098
const LS * operator->() const
Definition: pdelab.hh:2009
CON & getCON()
Definition: pdelab.hh:868
const T * operator->() const
Definition: pdelab.hh:376
P0Space(const GV &gridview)
Definition: pdelab.hh:1397
ISTLBackend_SEQ_BCGS_SSOR LS
Definition: pdelab.hh:1874
CONB::CON CON
Definition: pdelab.hh:906
const T & operator*() const
Definition: pdelab.hh:371
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:461
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1260
CGFEMBase< ES, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:709
Nonoverlapping parallel CG solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:860
GalerkinGlobalAssemblerNewBackend(const FS &fs, LOP &lop, const MBE &mbe)
Definition: pdelab.hh:1569
UnstructuredGrid(std::string filename, bool verbose=true, bool insert_boundary_segments=true)
Definition: pdelab.hh:336
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1152
Dune::PDELab::ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1563
Definition: gridoperator/onestep.hh:17
CC & getCC()
Definition: pdelab.hh:1129
const LS & getLS() const
Definition: pdelab.hh:1856
void clearConstraints()
Definition: pdelab.hh:1428
Definition: pdelab.hh:580
Backend using (possibly nested) ISTL BCRSMatrices.
Definition: bcrsmatrixbackend.hh:187
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1011
T::ctype ctype
Definition: pdelab.hh:331
Overlapping parallel CGS solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:725
LS & operator*()
Definition: pdelab.hh:1956
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1199
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: novlpistlsolverbackend.hh:635
Dune::PDELab::ISTLBackend_SEQ_ExplicitDiagonal LS
Definition: pdelab.hh:1947
T::LeafGridView GV
Definition: pdelab.hh:1286
VBET VBE
Definition: pdelab.hh:715
typename impl::BackendVectorSelector< GridFunctionSpace, FieldType >::Type Vector
alias of the return type of BackendVectorSelector
Definition: backend/interface.hh:106
N NT
Definition: pdelab.hh:718
const FEM & getFEM() const
Definition: pdelab.hh:407
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:725
Overlapping parallel BiCGStab solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:659
GO & getGO()
Definition: pdelab.hh:1680
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1296
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:957
T::ctype ctype
Definition: pdelab.hh:1382
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:651
LS * operator->()
Definition: pdelab.hh:1858
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:401
Definition: pdelab.hh:441
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:719
LS & operator*()
Definition: pdelab.hh:1832
CC & getCC()
Definition: pdelab.hh:1321
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:513
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1242
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:606
T & operator*()
Definition: pdelab.hh:361
GO * operator->()
Definition: pdelab.hh:1696
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1392
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1051
CONB::CON CON
Definition: pdelab.hh:1101
void clearConstraints()
Definition: pdelab.hh:657
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:561
Definition: l2orthonormal.hh:154
T::LeafGridView GV
Definition: pdelab.hh:895
T & getGrid()
Definition: pdelab.hh:350
Dune::PDELab::ISTLBackend_SEQ_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1722
CC & getCC()
Definition: pdelab.hh:1225
T::ctype ctype
Definition: pdelab.hh:1287
T Grid
Definition: pdelab.hh:1189
GO::Jacobian MAT
Definition: pdelab.hh:1567
const LS & operator*() const
Definition: pdelab.hh:1958
const GO & operator*() const
Definition: pdelab.hh:1650
FEM & getFEM()
Definition: pdelab.hh:736
Nonoverlapping parallel CG solver preconditioned with AMG smoothed by SSOR.
Definition: novlpistlsolverbackend.hh:1073
FEM & getFEM()
Definition: pdelab.hh:424
T * operator->()
Definition: pdelab.hh:174
Definition: pdelab.hh:822
P0ParallelConstraints CON
Definition: pdelab.hh:863
const FEM & getFEM() const
Definition: pdelab.hh:925
const LS & getLS() const
Definition: pdelab.hh:1882
QkDGLocalFiniteElementMap< ctype, NT, degree, dim > FEM
Definition: pdelab.hh:1099
const CON & getCON() const
Definition: pdelab.hh:852
void set_nonconstrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
Definition: constraints.hh:962
GFS & getGFS()
Definition: pdelab.hh:1123
Nonoverlapping parallel BiCGSTAB solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:835
const LS & getLS() const
Definition: pdelab.hh:1906
LS & operator*()
Definition: pdelab.hh:1981
T::ctype ctype
Definition: pdelab.hh:1191
FEM & getFEM()
Definition: pdelab.hh:406
Grid::ctype ctype
Definition: pdelab.hh:202
const T & getGrid() const
Definition: pdelab.hh:164
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:539
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:680
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells)
Definition: pdelab.hh:99
const CON & getCON() const
Definition: pdelab.hh:869
N NT
Definition: pdelab.hh:1385
VBET VBE
Definition: pdelab.hh:1102
DGCONBase< st > CONB
Definition: pdelab.hh:905
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1422
ISTLBackend_OVLP_BCGS_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1922
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1849
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::lobatto > FEM
Definition: pdelab.hh:1195
extend conforming constraints class by processor boundary
Definition: conforming.hh:96
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1040
OneStepGlobalAssembler(GO1 &go1, GO2 &go2)
Definition: pdelab.hh:1674
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1254
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1433
LS & operator*()
Definition: pdelab.hh:1857
GFS & getGFS()
Definition: pdelab.hh:1410
LS * operator->()
Definition: pdelab.hh:1884
FEM & getFEM()
Definition: pdelab.hh:1406
DGLegendreSpace(const GV &gridview)
Definition: pdelab.hh:1302
T Grid
Definition: pdelab.hh:93
T Grid
Definition: pdelab.hh:584
CONB::CON CON
Definition: pdelab.hh:1006
const CON & getCON() const
Definition: pdelab.hh:568
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1445
Definition: pdelab.hh:1280
const CC & getCC() const
Definition: pdelab.hh:1228
T::LeafGridView GV
Definition: pdelab.hh:1094
LS * operator->()
Definition: pdelab.hh:1957
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1158
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:911
DGCONBase< st > CONB
Definition: pdelab.hh:1387
Parallel P0 constraints for overlapping grids.
Definition: p0.hh:15
LS & operator*()
Definition: pdelab.hh:1883
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1670
GO & getGO()
Definition: pdelab.hh:1629
Dune::PDELab::NonOverlappingEntitySet< GV > ES
Definition: pdelab.hh:705
Definition: pdelab.hh:989
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:940
Dune::PDELab::ISTLBackend_NOVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1997
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:668
FEM & getFEM()
Definition: pdelab.hh:617
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: ovlpistlsolverbackend.hh:1008
const GFS & getGFS() const
Definition: pdelab.hh:1031
T::LeafGridView GV
Definition: pdelab.hh:585
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::legendre > FEM
Definition: pdelab.hh:1291
const FEM & getFEM() const
Definition: pdelab.hh:1407
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:603
GO & getGO()
Definition: pdelab.hh:1522
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1135
ConformingDirichletConstraints CON
Definition: pdelab.hh:500
Grid * operator->()
Definition: pdelab.hh:305
const T & getGrid() const
Definition: pdelab.hh:356
const CON & getCON() const
Definition: pdelab.hh:515
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::SimplexGridP1Assembler, BCType > CON
Definition: pdelab.hh:448
Hanging Node constraints construction.
Definition: hangingnode.hh:312
N NT
Definition: pdelab.hh:1290
Dune::PDELab::GridOperator< typename FS::GFS, typename FS::GFS, LOP, MBE, typename FS::NT, typename FS::NT, typename FS::NT, typename FS::CC, typename FS::CC > GO
Definition: pdelab.hh:1513
void constraints(const GFS &gfs, CG &cg, const bool verbose=false)
construct constraints
Definition: constraints.hh:751
T::LeafGridView GV
Definition: pdelab.hh:1381
Dune::PDELab::OneStepGridOperator< typename GO1::GO, typename GO2::GO, implicit > GO
Definition: pdelab.hh:1671
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition: function.hh:49
const CC & getCC() const
Definition: pdelab.hh:1132
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition: function.hh:118
FEM & getFEM()
Definition: pdelab.hh:1119
GFS & getGFS()
Definition: pdelab.hh:1315
Standard grid operator implementation.
Definition: gridoperator.hh:35
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1107
DGCONBase< st > CONB
Definition: pdelab.hh:1100
const GFS & getGFS() const
Definition: pdelab.hh:931
GO::Jacobian MAT
Definition: pdelab.hh:1621
Definition: pdelab.hh:1469
const FEM & getFEM() const
Definition: pdelab.hh:1216
GO & operator*()
Definition: pdelab.hh:1640
Dune::PDELab::P0LocalFiniteElementMap< ctype, NT, dim > FEM
Definition: pdelab.hh:1386
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1510
T Grid
Definition: pdelab.hh:702
const GO & operator*() const
Definition: pdelab.hh:1543
Dune::PDELab::ISTLBackend_NOVLP_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1747
const LS & operator*() const
Definition: pdelab.hh:1734
Sequential conjugate gradient solver preconditioned with AMG smoothed by SSOR.
Definition: seqistlsolverbackend.hh:698
traits class holding the function signature, same as in local function
Definition: function.hh:176
UserFunction(const FS &fs_, const Functor &f_)
constructor
Definition: pdelab.hh:1479
Definition: parallelhelper.hh:50
const CON & getCON() const
Definition: pdelab.hh:835
MeshType
Definition: pdelab.hh:434
FEM & getFEM()
Definition: pdelab.hh:1215
Dune::PDELab::GridOperator< typename FSU::GFS, typename FSV::GFS, LOP, MBE, typename FSU::NT, typename FSU::NT, typename FSU::NT, typename FSU::CC, typename FSV::CC > GO
Definition: pdelab.hh:1620
GFS & getGFS()
Definition: pdelab.hh:747
const LS * operator->() const
Definition: pdelab.hh:1860
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1203
Definition: pdelab.hh:1184
StructuredGrid(Dune::GeometryType::BasicType meshtype, std::array< double, dimworld > lower_left, std::array< double, dimworld > upper_right, std::array< unsigned int, dim > cells)
Definition: pdelab.hh:119
const LS & getLS() const
Definition: pdelab.hh:1980
LS & operator*()
Definition: pdelab.hh:1807
const LS & operator*() const
Definition: pdelab.hh:1933
CC & getCC()
Definition: pdelab.hh:1416
Definition: noconstraints.hh:16
const FEM & getFEM() const
Definition: pdelab.hh:1025
ISTLBackend_NOVLP_CG_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1822
ISTLBackend_SEQ_CG_SSOR LS
Definition: pdelab.hh:1797
void maskForeignDOFs(X &x) const
Mask out all DOFs not owned by the current process with 0.
Definition: parallelhelper.hh:126
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:854
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1104
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:491
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1248
GO & operator*()
Definition: pdelab.hh:1533
VBET VBE
Definition: pdelab.hh:907
const LS & getLS() const
Definition: pdelab.hh:1930
const GO & getGO() const
Definition: pdelab.hh:1581
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::CubeGridQ1Assembler, BCType > CON
Definition: pdelab.hh:474
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:969
static const int dim
Definition: pdelab.hh:95
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1106
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:487
P0ParallelGhostConstraints CON
Definition: pdelab.hh:846
void clearConstraints()
Definition: pdelab.hh:1141
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:910
N NT
Definition: pdelab.hh:1194
Dune::PDELab::ISTLBackend_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1772
LS * operator->()
Definition: pdelab.hh:1808
T::ctype ctype
Definition: pdelab.hh:896
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:602
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:517
FEMB::FEM FEM
Definition: pdelab.hh:712
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1231
void clearConstraints()
Definition: pdelab.hh:1333
VBET VBE
Definition: pdelab.hh:1294
const CC & getCC() const
Definition: pdelab.hh:646
YaspGrid< dim > Grid
Definition: pdelab.hh:201
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:908
T::ctype ctype
Definition: pdelab.hh:586
LS * operator->()
Definition: pdelab.hh:2007
const GO * operator->() const
Definition: pdelab.hh:1601
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1900
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
FEM & getFEM()
Definition: pdelab.hh:924
VBET VBE
Definition: pdelab.hh:1389
T::LeafGridView GV
Definition: pdelab.hh:703
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1327
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt, N, Dune::PB::BasisType::Qk > FEM
Definition: pdelab.hh:1003
CC & getCC()
Definition: pdelab.hh:759
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:963
DGCONBase()
Definition: pdelab.hh:847
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1200
GO * operator->()
Definition: pdelab.hh:1591
CON & getCON()
Definition: pdelab.hh:567
const FS::GV & getGridView() const
Definition: pdelab.hh:1494
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1295
const LS * operator->() const
Definition: pdelab.hh:1984
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:507
Definition: l2orthonormal.hh:154
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1876
const LS & getLS() const
Definition: pdelab.hh:2005
T Grid
Definition: pdelab.hh:894
GO & getGO()
Definition: pdelab.hh:1575
const Grid & getGrid() const
Definition: pdelab.hh:295
const GO & operator*() const
Definition: pdelab.hh:1596
Grid & operator*()
Definition: pdelab.hh:300
FEM & getFEM()
Definition: pdelab.hh:1024
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1391
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1799
GalerkinGlobalAssembler(const FS &fs, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1516
Dune::PDELab::ISTLBackend_NOVLP_BCGS_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1898
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1394
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1057
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:601
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:912
T::LeafGridView GV
Definition: pdelab.hh:1190
const FEM & getFEM() const
Definition: pdelab.hh:1312
const LS * operator->() const
Definition: pdelab.hh:1735
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:720
CON & getCON()
Definition: pdelab.hh:540
const FEM & getFEM() const
Definition: pdelab.hh:1120
LS * operator->()
Definition: pdelab.hh:1932
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:787
void clearConstraints()
Definition: pdelab.hh:946
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1103
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1356
LS & getLS()
Definition: pdelab.hh:1905
const GO & getGO() const
Definition: pdelab.hh:1686
const LS & getLS() const
Definition: pdelab.hh:1831
CC & getCC()
Definition: pdelab.hh:1034
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:465
GO * operator->()
Definition: pdelab.hh:1645
GFS & getGFS()
Definition: pdelab.hh:1028
VBET VBE
Definition: pdelab.hh:596
LS * operator->()
Definition: pdelab.hh:1908
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1164
Definition: pdelab.hh:392
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1338
const LS & operator*() const
Definition: pdelab.hh:1784
const LS & operator*() const
Definition: pdelab.hh:1983
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:799
Definition: pdelab.hh:1666
Dune::PDELab::GridOperator< typename FS::GFS, typename FS::GFS, LOP, MBE, typename FS::NT, typename FS::NT, typename FS::NT, typename FS::CC, typename FS::CC > GO
Definition: pdelab.hh:1566
T::ctype ctype
Definition: pdelab.hh:1095
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:476
T Grid
Definition: pdelab.hh:330
const GFS & getGFS() const
Definition: pdelab.hh:1413
LS & getLS()
Definition: pdelab.hh:1830
T Grid
Definition: pdelab.hh:1093
const LS * operator->() const
Definition: pdelab.hh:1810
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:662
Definition: pdelab.hh:1506
const LS * operator->() const
Definition: pdelab.hh:1886
Dune::PDELab::ISTLBackend_OVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1972
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:722
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1344
LS & getLS()
Definition: pdelab.hh:1855
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1298
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1390
CON & getCON()
Definition: pdelab.hh:851
const GO & getGO() const
Definition: pdelab.hh:1635
CONB::CON CON
Definition: pdelab.hh:1388
CGCONBase< Grid, degree, gt, mt, SolverCategory::nonoverlapping, BCType > CONB
Definition: pdelab.hh:710
LS * operator->()
Definition: pdelab.hh:1982
const LS & operator*() const
Definition: pdelab.hh:2008
CONB::CON CON
Definition: pdelab.hh:594
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1105
const GFS & getGFS() const
Definition: pdelab.hh:1222
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:770
const FEM & getFEM() const
Definition: pdelab.hh:425
ISTLSolverBackend_CG_AMG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1, bool reuse_=false, bool usesuperlu_=true)
Definition: pdelab.hh:1774
T Grid
Definition: pdelab.hh:1380
Backend for sequential BiCGSTAB solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:261
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1949
Traits::Jacobian Jacobian
Definition: gridoperator/onestep.hh:56
GFS & getGFS()
Definition: pdelab.hh:628
const T * operator->() const
Definition: pdelab.hh:184
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:674
const CON & getCON() const
Definition: pdelab.hh:489
const GO & operator*() const
Definition: pdelab.hh:1701
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1202
FEM & getFEM()
Definition: pdelab.hh:1311
LS & operator*()
Definition: pdelab.hh:1757
T Grid
Definition: pdelab.hh:1285
void clearConstraints()
Definition: pdelab.hh:1046
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:600
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:781
LS & getLS()
Definition: pdelab.hh:1805
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1201
T::LeafGridView GV
Definition: pdelab.hh:995
static const int dimworld
Definition: pdelab.hh:96
wrap a GridFunction so it can be used with the VTKWriter from dune-grid.
Definition: vtkexport.hh:22
const CON & getCON() const
Definition: pdelab.hh:541
Definition: pdelab.hh:435
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells, int overlap=1)
Definition: pdelab.hh:206
const LS & operator*() const
Definition: pdelab.hh:1909
const FEM & getFEM() const
Definition: pdelab.hh:622
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1824
CONB::CON CON
Definition: pdelab.hh:1197
ISTLSolverBackend_CG_AMG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1, bool reuse_=false, bool usesuperlu_=true)
Definition: pdelab.hh:1749
PkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:399
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:721
N NT
Definition: pdelab.hh:999
CON & getCON()
Definition: pdelab.hh:488
LS & getLS()
Definition: pdelab.hh:1730
DGCONBase()
Definition: pdelab.hh:830
const LS & getLS() const
Definition: pdelab.hh:1756
const LS & operator*() const
Definition: pdelab.hh:1759
GridFunctionTraits< typename FS::GV, typename FS::NT, 1, FieldVector< typename FS::NT, 1 > > Traits
Definition: pdelab.hh:1476
CC & getCC()
Definition: pdelab.hh:640
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:152
GO::Jacobian MAT
Definition: pdelab.hh:1514
const GO & getGO() const
Definition: pdelab.hh:1528
Backend for sequential conjugate gradient solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:348
VBET VBE
Definition: pdelab.hh:1198
CONB::CON CON
Definition: pdelab.hh:1293
const LS * operator->() const
Definition: pdelab.hh:1785
GFS & getGFS()
Definition: pdelab.hh:1219
GO & operator*()
Definition: pdelab.hh:1691
LS & getLS()
Definition: pdelab.hh:1979
const LS * operator->() const
Definition: pdelab.hh:1959
Definition: pdelab.hh:1943
DGCONBase()
Definition: pdelab.hh:864
LS & getLS()
Definition: pdelab.hh:1780
const GFS & getGFS() const
Definition: pdelab.hh:634
StructuredGrid(Dune::GeometryType::BasicType meshtype, std::array< double, dimworld > lower_left, std::array< double, dimworld > upper_right, std::array< unsigned int, dim > cells, int overlap=1)
Definition: pdelab.hh:222
const CC & getCC() const
Definition: pdelab.hh:1324
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:543
T Grid
Definition: pdelab.hh:994
LS & operator*()
Definition: pdelab.hh:2006
LS & operator*()
Definition: pdelab.hh:1782
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Evaluate the GridFunction at given position.
Definition: pdelab.hh:1484
LS & operator*()
Definition: pdelab.hh:1931
Definition: pdelab.hh:1870
LS * operator->()
Definition: pdelab.hh:1758
QkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:417
const LS & getLS() const
Definition: pdelab.hh:1955
Dirichlet Constraints construction.
Definition: conforming.hh:36
N NT
Definition: pdelab.hh:899
CONB::CON CON
Definition: pdelab.hh:713
const LS & getLS() const
Definition: pdelab.hh:1731
LS & getLS()
Definition: pdelab.hh:2004
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1299
const LS & operator*() const
Definition: pdelab.hh:1809
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:450
CON & getCON()
Definition: pdelab.hh:514
Definition: genericdatahandle.hh:665
Grid & getGrid()
Definition: pdelab.hh:289
void copy_nonconstrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:989
const GFS & getGFS() const
Definition: pdelab.hh:1126
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1999
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1617
const GO * operator->() const
Definition: pdelab.hh:1548
const Grid * operator->() const
Definition: pdelab.hh:315
T & getGrid()
Definition: pdelab.hh:158
void clearConstraints()
Definition: pdelab.hh:1237
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1451
const LS & getLS() const
Definition: pdelab.hh:1781
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:909
LS * operator->()
Definition: pdelab.hh:1833
const LS * operator->() const
Definition: pdelab.hh:1934
const LS & getLS() const
Definition: pdelab.hh:1806
LS & operator*()
Definition: pdelab.hh:1907
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: seqistlsolverbackend.hh:503
Overlapping parallel conjugate gradient solver preconditioned with AMG smoothed by SSOR...
Definition: ovlpistlsolverbackend.hh:1256
Definition: pdelab.hh:436
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:344
DGQkGLSpace(const GV &gridview)
Definition: pdelab.hh:1206
Definition: pdelab.hh:889
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:951
T & operator*()
Definition: pdelab.hh:169
DGCONBase< st > CONB
Definition: pdelab.hh:1196
Definition: partitionviewentityset.hh:34
CON & getCON()
Definition: pdelab.hh:462
Definition: pdelab.hh:326
DGCONBase< st > CONB
Definition: pdelab.hh:1292
CGFEMBase< GV, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:590
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1012
LS * operator->()
Definition: pdelab.hh:1733
Definition: pdelab.hh:1613
std::enable_if< std::is_base_of< impl::WrapperBase, T >::value, Native< T > &>::type native(T &t)
Definition: backend/interface.hh:192
GO & operator*()
Definition: pdelab.hh:1586
const LS * operator->() const
Definition: pdelab.hh:1835
const LS & operator*() const
Definition: pdelab.hh:1859
VBET VBE
Definition: pdelab.hh:1007
const CC & getCC() const
Definition: pdelab.hh:937
const GO * operator->() const
Definition: pdelab.hh:1655
const GO * operator->() const
Definition: pdelab.hh:1706
N NT
Definition: pdelab.hh:599
GridFunctionSpace< ES, FEM, CON, VBE > GFS
Definition: pdelab.hh:716
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1393
LS & operator*()
Definition: pdelab.hh:1732
void copy_constrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:938
DGCONBase< st > CONB
Definition: pdelab.hh:1005
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:570
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:793
FEMB::FEM FEM
Definition: pdelab.hh:593
const Grid & operator*() const
Definition: pdelab.hh:310
LS & getLS()
Definition: pdelab.hh:1954
GO * operator->()
Definition: pdelab.hh:1538
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1069
const LS & operator*() const
Definition: pdelab.hh:1834
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1297
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:533
DGQkOPBSpace(const GV &gridview)
Definition: pdelab.hh:1015
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1924
const LS * operator->() const
Definition: pdelab.hh:1910
Definition: istl/descriptors.hh:47
std::shared_ptr< Grid > getSharedPtr()
Definition: pdelab.hh:283
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt > FEM
Definition: pdelab.hh:903
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1146