20 #include <dune/common/parallel/mpihelper.hh> 21 #include <dune/common/parametertreeparser.hh> 22 #include <dune/common/classname.hh> 23 #include <dune/common/exceptions.hh> 24 #include <dune/common/fvector.hh> 26 #include <dune/geometry/type.hh> 27 #include <dune/geometry/quadraturerules.hh> 29 #include <dune/grid/onedgrid.hh> 30 #include <dune/grid/io/file/vtk.hh> 31 #include <dune/grid/yaspgrid.hh> 33 #include <dune/grid/uggrid.hh> 36 #include<dune/grid/albertagrid.hh> 37 #include <dune/grid/albertagrid/dgfparser.hh> 40 #include<dune/grid/uggrid.hh> 43 #include<dune/alugrid/grid.hh> 44 #include<dune/grid/io/file/dgfparser/dgfalu.hh> 45 #include<dune/grid/io/file/dgfparser/dgfparser.hh> 47 #include <dune/grid/utility/structuredgridfactory.hh> 48 #include <dune/grid/io/file/gmshreader.hh> 50 #include <dune/istl/bvector.hh> 51 #include <dune/istl/operators.hh> 52 #include <dune/istl/solvers.hh> 53 #include <dune/istl/solvercategory.hh> 54 #include <dune/istl/preconditioners.hh> 55 #include <dune/istl/io.hh> 57 #include <dune/istl/paamg/amg.hh> 95 typedef typename T::ctype
ctype;
96 static const int dim = T::dimension;
102 FieldVector<ctype,dimworld> lowerLeft(0.0);
103 FieldVector<ctype,dimworld> upperRight(1.0);
104 array<unsigned int,dim> elements; elements.fill(cells);
106 StructuredGridFactory<T> factory;
108 if (meshtype==Dune::GeometryType::cube)
109 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
110 else if (meshtype==Dune::GeometryType::simplex)
111 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
114 DUNE_THROW(GridError, className<StructuredGrid>()
115 <<
"::StructuredGrid(): grid type must be simplex or cube ");
121 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
122 array<unsigned int,dim> cells)
124 FieldVector<ctype,dimworld> lowerLeft;
125 FieldVector<ctype,dimworld> upperRight;
126 array<unsigned int,dim> elements;
131 lowerLeft[i] = lower_left[i];
132 upperRight[i] = upper_right[i];
134 for (
size_t i=0; i<
dim; i++)
136 elements[i] = cells[i];
139 StructuredGridFactory<T> factory;
141 if (meshtype==Dune::GeometryType::cube)
142 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
143 else if (meshtype==Dune::GeometryType::simplex)
144 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
147 DUNE_THROW(GridError, className<StructuredGrid>()
148 <<
"::StructuredGrid(): grid type must be simplex or cube ");
177 return gridp.operator->();
187 return gridp.operator->();
192 std::shared_ptr<T> gridp;
207 StructuredGrid (Dune::GeometryType::BasicType meshtype,
unsigned int cells,
int overlap=1)
210 if (meshtype!=Dune::GeometryType::cube)
211 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
214 Dune::FieldVector<double,dimworld> L(1.0);
215 Dune::array<int,dimworld> N(Dune::fill_array<int,dimworld>(cells));
216 std::bitset<dimworld> B(
false);
219 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
224 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
225 array<unsigned int,dim> cells,
int overlap=1)
229 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
230 DUNE_THROW(GridError, className<StructuredGrid>()
231 <<
"::createCubeGrid(): The lower coordinates " 232 "must be at the origin for YaspGrid.");
235 if (meshtype!=Dune::GeometryType::cube)
236 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
239 Dune::FieldVector<double,dimworld> L;
240 Dune::array<int,dimworld> N;
241 std::bitset<dimworld> B(
false);
244 L[i] = upper_right[i];
249 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
254 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
255 array<unsigned int,dim> cells, array<bool,dim>
periodic,
int overlap=1)
259 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
260 DUNE_THROW(GridError, className<StructuredGrid>()
261 <<
"::createCubeGrid(): The lower coordinates " 262 "must be at the origin for YaspGrid.");
265 if (meshtype!=Dune::GeometryType::cube)
266 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
269 Dune::FieldVector<double,dimworld> L;
270 Dune::array<int,dimworld> N;
271 std::bitset<dimworld> B(
false);
274 L[i] = upper_right[i];
280 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
308 return gridp.operator->();
318 return gridp.operator->();
322 std::shared_ptr<Grid> gridp;
333 static const int dim = T::dimension;
337 UnstructuredGrid (std::string filename,
bool verbose =
true,
bool insert_boundary_segments=
true)
339 Dune::GridFactory<T> factory;
340 Dune::GmshReader<T>::read(factory,filename,verbose,insert_boundary_segments);
341 gridp = std::shared_ptr<T>(factory.createGrid());
369 return gridp.operator->();
379 return gridp.operator->();
383 std::shared_ptr<T> gridp;
392 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim, Dune::GeometryType::BasicType gt>
396 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
404 femp = std::shared_ptr<FEM>(
new FEM(gridview));
408 const FEM&
getFEM()
const {
return *femp;}
411 std::shared_ptr<FEM> femp;
414 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
422 femp = std::shared_ptr<FEM>(
new FEM(gridview));
426 const FEM&
getFEM()
const {
return *femp;}
429 std::shared_ptr<FEM> femp;
441 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>
445 template<
typename Gr
id,
typename BCType,
typename GV>
453 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
458 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
461 template<
typename GFS>
464 const CON&
getCON()
const {
return *conp;}
465 template<
typename GFS,
typename DOF>
468 std::shared_ptr<CON> conp;
471 template<
typename Gr
id,
typename BCType,
typename GV>
479 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
484 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
487 template<
typename GFS>
490 const CON&
getCON()
const {
return *conp;}
491 template<
typename GFS,
typename DOF>
494 std::shared_ptr<CON> conp;
497 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
505 conp = std::shared_ptr<CON>(
new CON());
510 conp = std::shared_ptr<CON>(
new CON());
513 template<
typename GFS>
516 const CON&
getCON()
const {
return *conp;}
517 template<
typename GFS,
typename DOF>
520 std::shared_ptr<CON> conp;
523 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
531 conp = std::shared_ptr<CON>(
new CON());
536 conp = std::shared_ptr<CON>(
new CON());
539 template<
typename GFS>
542 const CON&
getCON()
const {
return *conp;}
543 template<
typename GFS,
typename DOF>
550 if (gfs.gridView().comm().size()>1)
551 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
554 std::shared_ptr<CON> conp;
557 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
564 conp = std::shared_ptr<CON>(
new CON);
567 template<
typename GFS>
570 template<
typename GFS,
typename DOF>
573 std::shared_ptr<CON> conp;
578 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
579 Dune::GeometryType::BasicType gt,
MeshType mt, SolverCategory::Category st = SolverCategory::sequential,
586 typedef typename T::LeafGridView
GV;
588 static const int dim = T::dimension;
594 typedef typename FEMB::FEM
FEM;
595 typedef typename CONB::CON
CON;
603 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
608 : gv(grid.leafGridView()), femb(gv), conb(grid,bctype)
610 gfsp = std::shared_ptr<GFS>(
new GFS(gv,femb.getFEM(),conb.getCON()));
611 gfsp->name(
"cgspace");
614 conb.postGFSHook(*gfsp);
615 ccp = std::shared_ptr<CC>(
new CC());
620 return femb.getFEM();
625 return femb.getFEM();
666 conb.make_consistent(*gfsp,x);
672 conb.make_consistent(*gfsp,x);
678 conb.make_consistent(*gfsp,xout);
684 conb.make_consistent(*gfsp,xout);
691 std::shared_ptr<GFS> gfsp;
692 std::shared_ptr<CC> ccp;
696 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
697 Dune::GeometryType::BasicType gt,
MeshType mt,
699 class CGSpace<T, N, degree, BCType, gt, mt, SolverCategory::nonoverlapping, VBET> {
704 typedef typename T::LeafGridView
GV;
707 static const int dim = T::dimension;
713 typedef typename FEMB::FEM
FEM;
714 typedef typename CONB::CON
CON;
722 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
727 : gv(grid.leafGridView()), es(gv), femb(es), conb(grid,bctype)
729 gfsp = std::shared_ptr<GFS>(
new GFS(es,femb.getFEM(),conb.getCON()));
730 gfsp->name(
"cgspace");
734 ccp = std::shared_ptr<CC>(
new CC());
739 return femb.getFEM();
744 return femb.getFEM();
785 conb.make_consistent(*gfsp,x);
791 conb.make_consistent(*gfsp,x);
797 conb.make_consistent(*gfsp,xout);
803 conb.make_consistent(*gfsp,xout);
811 std::shared_ptr<GFS> gfsp;
812 std::shared_ptr<CC> ccp;
822 template<SolverCategory::Category st>
833 conp = std::shared_ptr<CON>(
new CON());
836 const CON&
getCON()
const {
return *conp;}
837 template<
typename GFS,
typename DOF>
840 std::shared_ptr<CON> conp;
850 conp = std::shared_ptr<CON>(
new CON());
853 const CON&
getCON()
const {
return *conp;}
854 template<
typename GFS,
typename DOF>
857 std::shared_ptr<CON> conp;
867 conp = std::shared_ptr<CON>(
new CON());
870 const CON&
getCON()
const {
return *conp;}
871 template<
typename GFS,
typename DOF>
878 if (gfs.gridView().comm().size()>1)
879 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
882 std::shared_ptr<CON> conp;
887 template<
typename T,
typename N,
unsigned int degree,
888 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
896 typedef typename T::LeafGridView
GV;
898 static const int dim = T::dimension;
907 typedef typename CONB::CON
CON;
912 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
918 femp = std::shared_ptr<FEM>(
new FEM());
919 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
922 ccp = std::shared_ptr<CC>(
new CC());
926 const FEM&
getFEM()
const {
return *femp; }
932 const GFS&
getGFS ()
const {
return *gfsp;}
938 const CC&
getCC ()
const {
return *ccp;}
940 template<
class BCTYPE>
955 conb.make_consistent(*gfsp,x);
961 conb.make_consistent(*gfsp,x);
967 conb.make_consistent(*gfsp,xout);
973 conb.make_consistent(*gfsp,xout);
979 std::shared_ptr<FEM> femp;
980 std::shared_ptr<GFS> gfsp;
981 std::shared_ptr<CC> ccp;
986 template<
typename T,
typename N,
unsigned int degree,
987 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
996 typedef typename T::LeafGridView
GV;
998 static const int dim = T::dimension;
1007 typedef typename CONB::CON
CON;
1012 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1018 femp = std::shared_ptr<FEM>(
new FEM());
1019 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1022 ccp = std::shared_ptr<CC>(
new CC());
1038 const CC&
getCC ()
const {
return *ccp;}
1040 template<
class BCTYPE>
1055 conb.make_consistent(*gfsp,x);
1061 conb.make_consistent(*gfsp,x);
1067 conb.make_consistent(*gfsp,xout);
1073 conb.make_consistent(*gfsp,xout);
1079 std::shared_ptr<FEM> femp;
1080 std::shared_ptr<GFS> gfsp;
1081 std::shared_ptr<CC> ccp;
1086 template<
typename T,
typename N,
unsigned int degree,
1087 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1095 typedef typename T::LeafGridView
GV;
1097 static const int dim = T::dimension;
1102 typedef typename CONB::CON
CON;
1107 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1113 femp = std::shared_ptr<FEM>(
new FEM());
1114 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1117 ccp = std::shared_ptr<CC>(
new CC());
1133 const CC&
getCC ()
const {
return *ccp;}
1135 template<
class BCTYPE>
1150 conb.make_consistent(*gfsp,x);
1156 conb.make_consistent(*gfsp,x);
1162 conb.make_consistent(*gfsp,xout);
1168 conb.make_consistent(*gfsp,xout);
1174 std::shared_ptr<FEM> femp;
1175 std::shared_ptr<GFS> gfsp;
1176 std::shared_ptr<CC> ccp;
1181 template<
typename T,
typename N,
unsigned int degree,
1182 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1191 typedef typename T::LeafGridView
GV;
1193 static const int dim = T::dimension;
1198 typedef typename CONB::CON
CON;
1203 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1209 femp = std::shared_ptr<FEM>(
new FEM());
1210 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1213 ccp = std::shared_ptr<CC>(
new CC());
1229 const CC&
getCC ()
const {
return *ccp;}
1231 template<
class BCTYPE>
1246 conb.make_consistent(*gfsp,x);
1252 conb.make_consistent(*gfsp,x);
1258 conb.make_consistent(*gfsp,xout);
1264 conb.make_consistent(*gfsp,xout);
1270 std::shared_ptr<FEM> femp;
1271 std::shared_ptr<GFS> gfsp;
1272 std::shared_ptr<CC> ccp;
1277 template<
typename T,
typename N,
unsigned int degree,
1278 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1287 typedef typename T::LeafGridView
GV;
1289 static const int dim = T::dimension;
1294 typedef typename CONB::CON
CON;
1299 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1305 femp = std::shared_ptr<FEM>(
new FEM());
1306 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1309 ccp = std::shared_ptr<CC>(
new CC());
1325 const CC&
getCC ()
const {
return *ccp;}
1327 template<
class BCTYPE>
1342 conb.make_consistent(*gfsp,x);
1348 conb.make_consistent(*gfsp,x);
1354 conb.make_consistent(*gfsp,xout);
1360 conb.make_consistent(*gfsp,xout);
1366 std::shared_ptr<FEM> femp;
1367 std::shared_ptr<GFS> gfsp;
1368 std::shared_ptr<CC> ccp;
1373 template<
typename T,
typename N,
1374 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1382 typedef typename T::LeafGridView
GV;
1384 static const int dim = T::dimension;
1389 typedef typename CONB::CON
CON;
1394 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1398 P0Space (
const GV& gridview) : gv(gridview), conb()
1400 femp = std::shared_ptr<FEM>(
new FEM(Dune::GeometryType(gt,dim)));
1401 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1404 ccp = std::shared_ptr<CC>(
new CC());
1420 const CC&
getCC ()
const {
return *ccp;}
1422 template<
class BCTYPE>
1437 conb.make_consistent(*gfsp,x);
1443 conb.make_consistent(*gfsp,x);
1449 conb.make_consistent(*gfsp,xout);
1455 conb.make_consistent(*gfsp,xout);
1461 std::shared_ptr<FEM> femp;
1462 std::shared_ptr<GFS> gfsp;
1463 std::shared_ptr<CC> ccp;
1469 template<
typename FS,
typename Functor>
1471 :
public GridFunctionBase<GridFunctionTraits<typename FS::GV, typename FS::NT,
1472 1,FieldVector<typename FS::NT,1> >
1473 ,UserFunction<FS,Functor> >
1490 std::vector<double> x__(x.size());
1491 for (
size_t i=0; i<x.size(); ++i) x__[i]=x_[i];
1497 return fs.getGFS().gridView();
1506 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1513 typename FS::NT,
typename FS::NT,
typename FS::NT,
1514 typename FS::CC,
typename FS::CC>
GO;
1517 DUNE_DEPRECATED_MSG(
"This constructor is deprecated and will removed after the release of PDELab 2.4. Use GalerkinGlobalAssembler(const FS& fs, LOP& lop, const std::size_t nonzeros) instead! The number of nonzeros can be determined with patternStatistics()!")
1520 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,MBE(1)));
1525 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,MBE(nonzeros)));
1547 return gop.operator->();
1557 return gop.operator->();
1561 std::shared_ptr<GO> gop;
1565 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1572 typename FS::NT,
typename FS::NT,
typename FS::NT,
1573 typename FS::CC,
typename FS::CC>
GO;
1578 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,mbe));
1600 return gop.operator->();
1610 return gop.operator->();
1614 std::shared_ptr<GO> gop;
1619 template<
typename FSU,
typename FSV,
typename LOP, SolverCategory::Category st>
1626 typename FSU::NT,
typename FSU::NT,
typename FSU::NT,
1627 typename FSU::CC,
typename FSV::CC>
GO;
1630 DUNE_DEPRECATED_MSG(
"This constructor is deprecated and will removed after the release of PDELab 2.4. Use GalerkinGlobalAssembler(const FSU& fsu, const FSV& fsv, LOP& lop, const std::size_t nonzeros) instead! The number of nonzeros can be determined with patternStatistics()!")
1633 gop = std::shared_ptr<GO>(
new GO(fsu.getGFS(),fsu.getCC(),fsv.getGFS(),fsv.getCC(),lop,MBE(1)));
1638 gop = std::shared_ptr<GO>(
new GO(fsu.getGFS(),fsu.getCC(),fsv.getGFS(),fsv.getCC(),lop,MBE(nonzeros)));
1660 return gop.operator->();
1670 return gop.operator->();
1674 std::shared_ptr<GO> gop;
1678 template<
typename GO1,
typename GO2,
bool implicit = true>
1689 gop = std::shared_ptr<GO>(
new GO(*go1,*go2));
1711 return gop.operator->();
1721 return gop.operator->();
1725 std::shared_ptr<GO> gop;
1730 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1738 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1740 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_,reuse_,usesuperlu_));
1744 const LS&
getLS ()
const {
return *lsp;}
1751 std::shared_ptr<LS> lsp;
1755 template<
typename FS,
typename ASS>
1763 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1765 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1769 const LS&
getLS ()
const {
return *lsp;}
1776 std::shared_ptr<LS> lsp;
1780 template<
typename FS,
typename ASS>
1788 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1790 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1794 const LS&
getLS ()
const {
return *lsp;}
1801 std::shared_ptr<LS> lsp;
1805 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1813 int steps_=5,
int verbose_=1)
1815 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1819 const LS&
getLS ()
const {
return *lsp;}
1826 std::shared_ptr<LS> lsp;
1830 template<
typename FS,
typename ASS>
1838 int steps_=5,
int verbose_=1)
1840 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,steps_,verbose_));
1844 const LS&
getLS ()
const {
return *lsp;}
1851 std::shared_ptr<LS> lsp;
1855 template<
typename FS,
typename ASS>
1863 int steps_=5,
int verbose_=1)
1865 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,steps_,verbose_));
1869 const LS&
getLS ()
const {
return *lsp;}
1876 std::shared_ptr<LS> lsp;
1882 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1891 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1895 const LS&
getLS ()
const {
return *lsp;}
1902 std::shared_ptr<LS> lsp;
1906 template<
typename FS,
typename ASS>
1915 lsp = std::shared_ptr<LS>(
new LS(ass.getGO(),maxiter_,3,verbose_));
1919 const LS&
getLS ()
const {
return *lsp;}
1926 std::shared_ptr<LS> lsp;
1930 template<
typename FS,
typename ASS>
1939 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,3,verbose_));
1943 const LS&
getLS ()
const {
return *lsp;}
1950 std::shared_ptr<LS> lsp;
1955 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1964 lsp = std::shared_ptr<LS>(
new LS());
1968 const LS&
getLS ()
const {
return *lsp;}
1975 std::shared_ptr<LS> lsp;
1980 template<
typename FS,
typename ASS>
1989 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
1993 const LS&
getLS ()
const {
return *lsp;}
2000 std::shared_ptr<LS> lsp;
2005 template<
typename FS,
typename ASS>
2014 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
2018 const LS&
getLS ()
const {
return *lsp;}
2025 std::shared_ptr<LS> lsp;
CC & getCC()
Definition: pdelab.hh:1035
std::enable_if< std::is_base_of< impl::WrapperBase, T >::value, Native< T > & >::type native(T &t)
Definition: backend/interface.hh:199
DGCONBase< st > CONB
Definition: pdelab.hh:1006
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:964
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:669
DGCONBase< st > CONB
Definition: pdelab.hh:1197
GO & operator*()
Definition: pdelab.hh:1653
const FEM & getFEM() const
Definition: pdelab.hh:408
const Grid * operator->() const
Definition: pdelab.hh:316
const FEM & getFEM() const
Definition: pdelab.hh:742
GFS & getGFS()
Definition: pdelab.hh:1316
Grid::ctype ctype
Definition: pdelab.hh:203
Dune::PDELab::istl::BCRSMatrixBackend MBE
Definition: pdelab.hh:1570
T::ctype ctype
Definition: pdelab.hh:1383
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1255
const T & operator*() const
Definition: pdelab.hh:372
FEM & getFEM()
Definition: pdelab.hh:1120
Grid * operator->()
Definition: pdelab.hh:306
LS * operator->()
Definition: pdelab.hh:1746
Parallel P0 constraints for overlapping grids.
Definition: p0.hh:15
GalerkinGlobalAssemblerNewBackend(const FS &fs, LOP &lop, const MBE &mbe)
Definition: pdelab.hh:1576
N NT
Definition: pdelab.hh:719
const LS & operator*() const
Definition: pdelab.hh:1898
CONB::CON CON
Definition: pdelab.hh:1007
T Grid
Definition: pdelab.hh:1094
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:721
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:492
VBET VBE
Definition: pdelab.hh:1295
DGCONBase()
Definition: pdelab.hh:831
void clearConstraints()
Definition: pdelab.hh:1238
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::CubeGridQ1Assembler, BCType > CON
Definition: pdelab.hh:475
const LS & operator*() const
Definition: pdelab.hh:1946
Definition: pdelab.hh:1883
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1339
Dune::PDELab::ISTLBackend_NOVLP_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1760
Definition: pdelab.hh:442
DGPkSpace(const GV &gridview)
Definition: pdelab.hh:916
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1058
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1440
GFS & getGFS()
Definition: pdelab.hh:929
T & operator*()
Definition: pdelab.hh:170
CON & getCON()
Definition: pdelab.hh:463
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:482
const LS & getLS() const
Definition: pdelab.hh:1794
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:771
Dune::PDELab::ISTLBackend_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1785
const LS & getLS() const
Definition: pdelab.hh:1869
GlobalAssembler(const FSU &fsu, const FSV &fsv, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1636
LS * operator->()
Definition: pdelab.hh:1897
CONB::CON CON
Definition: pdelab.hh:1102
Nonoverlapping parallel BiCGSTAB solver preconditioned by block SSOR.
Definition: istl/novlpistlsolverbackend.hh:822
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:544
VBET VBE
Definition: pdelab.hh:716
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1249
Traits::Jacobian Jacobian
Definition: gridoperator/onestep.hh:53
LS & operator*()
Definition: pdelab.hh:1795
T Grid
Definition: pdelab.hh:995
const FEM & getFEM() const
Definition: pdelab.hh:426
Definition: parallelhelper.hh:51
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:794
FEM & getFEM()
Definition: pdelab.hh:1216
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1009
GO::Jacobian MAT
Definition: pdelab.hh:1685
T Grid
Definition: pdelab.hh:331
const GO * operator->() const
Definition: pdelab.hh:1608
Definition: pdelab.hh:1470
convert a grid function space and a coefficient vector into a grid function
Definition: gridfunctionspaceutilities.hh:53
CC & getCC()
Definition: pdelab.hh:641
const CON & getCON() const
Definition: pdelab.hh:542
LS & getLS()
Definition: pdelab.hh:1818
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1203
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:402
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1446
LS & operator*()
Definition: pdelab.hh:1770
Definition: pdelab.hh:327
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1452
CON & getCON()
Definition: pdelab.hh:515
T::LeafGridView GV
Definition: pdelab.hh:1191
const GFS & getGFS() const
Definition: pdelab.hh:1319
GridFunctionSpace< ES, FEM, CON, VBE > GFS
Definition: pdelab.hh:717
const LS & getLS() const
Definition: pdelab.hh:1943
UserFunction(const FS &fs_, const Functor &f_)
constructor
Definition: pdelab.hh:1480
const CON & getCON() const
Definition: pdelab.hh:464
Dune::PDELab::OneStepGridOperator< typename GO1::GO, typename GO2::GO, implicit > GO
Definition: pdelab.hh:1684
const LS * operator->() const
Definition: pdelab.hh:1773
Definition: pdelab.hh:1731
T::LeafGridView GV
Definition: pdelab.hh:1287
const CON & getCON() const
Definition: pdelab.hh:516
void clearConstraints()
Definition: pdelab.hh:1142
GO * operator->()
Definition: pdelab.hh:1598
const Grid & getGrid() const
Definition: pdelab.hh:296
Definition: partitionviewentityset.hh:34
const LS & operator*() const
Definition: pdelab.hh:1847
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:534
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:855
CONB::CON CON
Definition: pdelab.hh:907
Definition: pdelab.hh:1679
Definition: noconstraints.hh:16
istl::BCRSMatrixBackend MBE
Definition: pdelab.hh:1511
const LS & getLS() const
Definition: pdelab.hh:1895
StructuredGrid(Dune::GeometryType::BasicType meshtype, array< double, dimworld > lower_left, array< double, dimworld > upper_right, array< unsigned int, dim > cells, int overlap=1)
Definition: pdelab.hh:223
Definition: pdelab.hh:823
CC & getCC()
Definition: pdelab.hh:1417
const CC & getCC() const
Definition: pdelab.hh:1325
T::ctype ctype
Definition: pdelab.hh:1192
GO & getGO()
Definition: pdelab.hh:1529
FEM & getFEM()
Definition: pdelab.hh:1407
OneStepGlobalAssembler(GO1 &go1, GO2 &go2)
Definition: pdelab.hh:1687
Dune::PDELab::Backend::Matrix< MB, Domain, Range, JF > Jacobian
The type of the jacobian.
Definition: gridoperator.hh:70
PkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:400
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1159
const GO & operator*() const
Definition: pdelab.hh:1603
const FEM & getFEM() const
Definition: pdelab.hh:1121
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:913
const GFS & getGFS() const
Definition: pdelab.hh:1032
LS * operator->()
Definition: pdelab.hh:1945
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::SimplexGridP1Assembler, BCType > CON
Definition: pdelab.hh:449
N NT
Definition: pdelab.hh:900
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:1737
const LS & operator*() const
Definition: pdelab.hh:1922
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:1627
T::ctype ctype
Definition: pdelab.hh:1288
DGQkGLSpace(const GV &gridview)
Definition: pdelab.hh:1207
T & operator*()
Definition: pdelab.hh:362
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:1573
Definition: genericdatahandle.hh:622
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:540
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:726
const GFS & getGFS() const
Definition: pdelab.hh:1127
T::ctype ctype
Definition: pdelab.hh:897
ConformingDirichletConstraints CON
Definition: pdelab.hh:501
T::LeafGridView GV
Definition: pdelab.hh:996
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1889
GridFunctionTraits< typename FS::GV, typename FS::NT, 1, FieldVector< typename FS::NT, 1 > > Traits
Definition: pdelab.hh:1477
LS * operator->()
Definition: pdelab.hh:1771
const GO & getGO() const
Definition: pdelab.hh:1648
ISTLBackend_SEQ_CG_SSOR LS
Definition: pdelab.hh:1810
const GO & operator*() const
Definition: pdelab.hh:1663
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1962
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:910
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1351
const CON & getCON() const
Definition: pdelab.hh:853
T Grid
Definition: pdelab.hh:1286
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:603
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells)
Definition: pdelab.hh:100
MeshType
Definition: pdelab.hh:435
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:722
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:681
Overlapping parallel BiCGStab solver with SSOR preconditioner.
Definition: istl/ovlpistlsolverbackend.hh:595
const LS & getLS() const
Definition: pdelab.hh:2018
CC & getCC()
Definition: pdelab.hh:1226
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:514
const GO & getGO() const
Definition: pdelab.hh:1588
const GO * operator->() const
Definition: pdelab.hh:1719
Definition: adaptivity.hh:27
LS * operator->()
Definition: pdelab.hh:1871
Backend for sequential BiCGSTAB solver with SSOR preconditioner.
Definition: istl/seqistlsolverbackend.hh:258
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1913
ISTLBackend_OVLP_CG_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1860
const LS & getLS() const
Definition: pdelab.hh:1968
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:872
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition: function.hh:117
CONB::CON CON
Definition: pdelab.hh:595
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1204
const Grid & operator*() const
Definition: pdelab.hh:311
Definition: pdelab.hh:1566
FEM & getFEM()
Definition: pdelab.hh:737
const GO * operator->() const
Definition: pdelab.hh:1668
const FEM & getFEM() const
Definition: pdelab.hh:926
LS & getLS()
Definition: pdelab.hh:1843
static const int dim
Definition: pdelab.hh:96
Backend using (possibly nested) ISTL BCRSMatrices.
Definition: bcrsmatrixbackend.hh:187
LS * operator->()
Definition: pdelab.hh:1921
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1987
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1232
const FEM & getFEM() const
Definition: pdelab.hh:1217
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:941
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells, int overlap=1)
Definition: pdelab.hh:207
Dune::PDELab::ISTLBackend_SEQ_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1735
LS & operator*()
Definition: pdelab.hh:1944
const T & getGrid() const
Definition: pdelab.hh:357
GO & operator*()
Definition: pdelab.hh:1540
T Grid
Definition: pdelab.hh:1190
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1937
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1261
Definition: pdelab.hh:990
DGCONBase()
Definition: pdelab.hh:848
GO * operator->()
Definition: pdelab.hh:1545
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1837
FEMB::FEM FEM
Definition: pdelab.hh:594
void clearConstraints()
Definition: pdelab.hh:777
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1393
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: ap/dglegendre.hh:16
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:970
DGCONBase< st > CONB
Definition: pdelab.hh:1293
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1070
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:604
const LS * operator->() const
Definition: pdelab.hh:1823
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:1514
Definition: l2orthonormal.hh:254
periodic boundary intersection (neighbor() == true && boundary() == true)
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:456
T Grid
Definition: pdelab.hh:94
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:958
QkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:418
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1041
GO::Jacobian MAT
Definition: pdelab.hh:1515
const LS * operator->() const
Definition: pdelab.hh:1972
DGLegendreSpace(const GV &gridview)
Definition: pdelab.hh:1303
const GFS & getGFS() const
Definition: pdelab.hh:635
LS & getLS()
Definition: pdelab.hh:1743
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt > FEM
Definition: pdelab.hh:904
LS * operator->()
Definition: pdelab.hh:2020
FEMB::FEM FEM
Definition: pdelab.hh:713
const T * operator->() const
Definition: pdelab.hh:377
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1345
N NT
Definition: pdelab.hh:1000
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: istl/seqistlsolverbackend.hh:500
const GFS & getGFS() const
Definition: pdelab.hh:754
GO * operator->()
Definition: pdelab.hh:1658
P0Space(const GV &gridview)
Definition: pdelab.hh:1398
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: istl/novlpistlsolverbackend.hh:630
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:912
VBET VBE
Definition: pdelab.hh:597
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:508
QkDGLocalFiniteElementMap< ctype, NT, degree, dim > FEM
Definition: pdelab.hh:1100
const CC & getCC() const
Definition: pdelab.hh:938
const GFS & getGFS() const
Definition: pdelab.hh:1414
const Entity & e
Definition: localfunctionspace.hh:111
LS & operator*()
Definition: pdelab.hh:1870
LS & getLS()
Definition: pdelab.hh:1992
LS & operator*()
Definition: pdelab.hh:1920
Definition: pdelab.hh:1376
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:663
FEM & getFEM()
Definition: pdelab.hh:407
UnstructuredGrid(std::string filename, bool verbose=true, bool insert_boundary_segments=true)
Definition: pdelab.hh:337
const CC & getCC() const
Definition: pdelab.hh:1133
const LS & operator*() const
Definition: pdelab.hh:1747
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:466
FEM & getFEM()
Definition: pdelab.hh:925
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:607
Dirichlet Constraints construction.
Definition: conforming.hh:36
static const int dimworld
Definition: pdelab.hh:97
void clearConstraints()
Definition: pdelab.hh:658
const LS * operator->() const
Definition: pdelab.hh:1848
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1862
CGCONBase< Grid, degree, gt, mt, st, BCType > CONB
Definition: pdelab.hh:592
void copy_constrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:938
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition: function.hh:48
Dune::PDELab::ISTLBackend_NOVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:2010
CON & getCON()
Definition: pdelab.hh:541
const CON & getCON() const
Definition: pdelab.hh:490
GO::Jacobian MAT
Definition: pdelab.hh:1574
CC & getCC()
Definition: pdelab.hh:935
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1299
CON & getCON()
Definition: pdelab.hh:869
void copy_nonconstrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:989
GalerkinGlobalAssembler(const FS &fs, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1523
Definition: pdelab.hh:436
Definition: pdelab.hh:1620
CONB::CON CON
Definition: pdelab.hh:1198
LS * operator->()
Definition: pdelab.hh:1846
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1391
FEM & getFEM()
Definition: pdelab.hh:618
Definition: pdelab.hh:1089
const FEM & getFEM() const
Definition: pdelab.hh:1313
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1011
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1153
LS & operator*()
Definition: pdelab.hh:1994
const LS & operator*() const
Definition: pdelab.hh:1797
Hanging Node constraints construction.
Definition: hangingnode.hh:318
void clearConstraints()
Definition: pdelab.hh:1334
CON & getCON()
Definition: pdelab.hh:568
Definition: pdelab.hh:437
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt, N, Dune::PB::BasisType::Qk > FEM
Definition: pdelab.hh:1004
const LS & operator*() const
Definition: pdelab.hh:1971
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:782
Definition: pdelab.hh:1507
LS * operator->()
Definition: pdelab.hh:1995
GFS & getGFS()
Definition: pdelab.hh:1029
const T * operator->() const
Definition: pdelab.hh:185
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:1485
void set_nonconstrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
Definition: constraints.hh:962
const CON & getCON() const
Definition: pdelab.hh:870
FEM & getFEM()
Definition: pdelab.hh:1312
T::ctype ctype
Definition: pdelab.hh:95
Dune::PDELab::P0LocalFiniteElementMap< ctype, NT, dim > FEM
Definition: pdelab.hh:1387
T & getGrid()
Definition: pdelab.hh:351
void clearConstraints()
Definition: pdelab.hh:1429
T::LeafGridView GV
Definition: pdelab.hh:1382
N NT
Definition: pdelab.hh:1099
LS & getLS()
Definition: pdelab.hh:1967
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:675
T::ctype ctype
Definition: pdelab.hh:705
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1434
const LS * operator->() const
Definition: pdelab.hh:1748
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:477
CONB::CON CON
Definition: pdelab.hh:714
LS & getLS()
Definition: pdelab.hh:1942
N NT
Definition: pdelab.hh:600
const FS::GV & getGridView() const
Definition: pdelab.hh:1495
DGLegendreLocalFiniteElementMap< ctype, NT, degree, dim > FEM
Definition: pdelab.hh:1292
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1106
CON & getCON()
Definition: pdelab.hh:852
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1243
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1392
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1395
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1064
Dune::PDELab::ISTLBackend_OVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1985
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1297
LS & operator*()
Definition: pdelab.hh:2019
Standard grid operator implementation.
Definition: gridoperator.hh:52
void clearConstraints()
Definition: pdelab.hh:947
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1107
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:345
CGCONBase< Grid, degree, gt, mt, SolverCategory::nonoverlapping, BCType > CONB
Definition: pdelab.hh:711
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:720
T::LeafGridView GV
Definition: pdelab.hh:586
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1165
R RangeType
range type
Definition: function.hh:60
const LS & getLS() const
Definition: pdelab.hh:1819
T & getGrid()
Definition: pdelab.hh:159
const GFS & getGFS() const
Definition: pdelab.hh:932
const LS & getLS() const
Definition: pdelab.hh:1744
T::LeafGridView GV
Definition: pdelab.hh:896
const LS * operator->() const
Definition: pdelab.hh:2022
CONB::CON CON
Definition: pdelab.hh:1294
VBET VBE
Definition: pdelab.hh:1103
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:800
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:788
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:952
QkDGGLLocalFiniteElementMap< ctype, NT, degree, dim > FEM
Definition: pdelab.hh:1196
const LS * operator->() const
Definition: pdelab.hh:1899
LS & getLS()
Definition: pdelab.hh:1793
DGCONBase< st > CONB
Definition: pdelab.hh:1101
T * operator->()
Definition: pdelab.hh:367
Parallel P0 constraints for nonoverlapping grids with ghosts.
Definition: p0ghost.hh:16
VBET VBE
Definition: pdelab.hh:1199
GFS & getGFS()
Definition: pdelab.hh:1124
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1202
GO::Jacobian MAT
Definition: pdelab.hh:1628
Dune::PDELab::NonOverlappingEntitySet< GV > ES
Definition: pdelab.hh:706
DGQkSpace(const GV &gridview)
Definition: pdelab.hh:1111
ISTLBackend_OVLP_BCGS_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1935
LS & operator*()
Definition: pdelab.hh:1820
GO & getGO()
Definition: pdelab.hh:1693
GFS & getGFS()
Definition: pdelab.hh:1220
LS & operator*()
Definition: pdelab.hh:1969
GO & getGO()
Definition: pdelab.hh:1582
LS & getLS()
Definition: pdelab.hh:1894
const FEM & getFEM() const
Definition: pdelab.hh:623
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:153
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:420
const LS * operator->() const
Definition: pdelab.hh:1947
T Grid
Definition: pdelab.hh:585
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:1762
const LS & operator*() const
Definition: pdelab.hh:1772
Definition: qkdggl.hh:353
YaspGrid< dim > Grid
Definition: pdelab.hh:202
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1108
DGCONBase()
Definition: pdelab.hh:865
Overlapping parallel CGS solver with SSOR preconditioner.
Definition: istl/ovlpistlsolverbackend.hh:661
Definition: pdelab.hh:1185
const CC & getCC() const
Definition: pdelab.hh:1038
const LS & getLS() const
Definition: pdelab.hh:1993
StructuredGrid(Dune::GeometryType::BasicType meshtype, array< double, dimworld > lower_left, array< double, dimworld > upper_right, array< unsigned int, dim > cells, array< bool, dim > periodic, int overlap=1)
Definition: pdelab.hh:253
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1328
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:1787
const GFS & getGFS() const
Definition: pdelab.hh:1223
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:601
LS & operator*()
Definition: pdelab.hh:1745
Nonoverlapping parallel CG solver preconditioned with AMG smoothed by SSOR.
Definition: istl/novlpistlsolverbackend.hh:1047
Definition: istl/descriptors.hh:47
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1136
GO & operator*()
Definition: pdelab.hh:1593
LS & getLS()
Definition: pdelab.hh:1868
T::ctype ctype
Definition: pdelab.hh:997
Definition: pdelab.hh:393
const GO & getGO() const
Definition: pdelab.hh:1535
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:602
const CON & getCON() const
Definition: pdelab.hh:836
typename impl::BackendVectorSelector< GridFunctionSpace, FieldType >::Type Vector
alias of the return type of BackendVectorSelector
Definition: backend/interface.hh:113
T Grid
Definition: pdelab.hh:703
LS & getLS()
Definition: pdelab.hh:1768
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:652
std::shared_ptr< Grid > getSharedPtr()
Definition: pdelab.hh:284
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:503
VBET VBE
Definition: pdelab.hh:1390
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:571
const LS & getLS() const
Definition: pdelab.hh:1919
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1010
P0ParallelGhostConstraints CON
Definition: pdelab.hh:847
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:2012
const CC & getCC() const
Definition: pdelab.hh:1420
CGFEMBase< GV, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:591
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1012
const T & operator*() const
Definition: pdelab.hh:180
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:909
T::ctype ctype
Definition: pdelab.hh:332
const CON & getCON() const
Definition: pdelab.hh:569
DGCONBase< st > CONB
Definition: pdelab.hh:1388
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:723
const FEM & getFEM() const
Definition: pdelab.hh:1026
Nonoverlapping parallel CG solver preconditioned by block SSOR.
Definition: istl/novlpistlsolverbackend.hh:844
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1052
T::ctype ctype
Definition: pdelab.hh:587
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1394
LS * operator->()
Definition: pdelab.hh:1821
istl::BCRSMatrixBackend MBE
Definition: pdelab.hh:1624
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1300
T::LeafGridView GV
Definition: pdelab.hh:704
Backend for sequential conjugate gradient solver with SSOR preconditioner.
Definition: istl/seqistlsolverbackend.hh:345
Definition: pdelab.hh:1281
Dune::PDELab::ISTLBackend_NOVLP_BCGS_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1911
Dune::PDELab::ISTLBackend_SEQ_ExplicitDiagonal LS
Definition: pdelab.hh:1960
DGQkOPBSpace(const GV &gridview)
Definition: pdelab.hh:1016
const GO & operator*() const
Definition: pdelab.hh:1714
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:518
Definition: gridoperator/onestep.hh:14
T Grid
Definition: pdelab.hh:895
Definition: pdelab.hh:581
const LS & operator*() const
Definition: pdelab.hh:1996
GO * operator->()
Definition: pdelab.hh:1709
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1147
NoConstraints CON
Definition: pdelab.hh:830
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:488
T::LeafGridView GV
Definition: pdelab.hh:1095
istl::BCRSMatrixBackend MBE
Definition: pdelab.hh:1683
const LS * operator->() const
Definition: pdelab.hh:1923
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:529
const FEM & getFEM() const
Definition: pdelab.hh:1408
const LS & getLS() const
Definition: pdelab.hh:1769
wrap a GridFunction so it can be used with the VTKWriter from dune-grid.
Definition: vtkexport.hh:22
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1200
OverlappingConformingDirichletConstraints CON
Definition: pdelab.hh:527
LS & getLS()
Definition: pdelab.hh:1918
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1013
void clearConstraints()
Definition: pdelab.hh:1047
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1296
N NT
Definition: pdelab.hh:1386
FEM & getFEM()
Definition: pdelab.hh:1025
VBET VBE
Definition: pdelab.hh:908
const CC & getCC() const
Definition: pdelab.hh:1229
T::ctype ctype
Definition: pdelab.hh:1096
const LS & getLS() const
Definition: pdelab.hh:1844
CC & getCC()
Definition: pdelab.hh:1322
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:838
LS & operator*()
Definition: pdelab.hh:1896
VBET VBE
Definition: pdelab.hh:1008
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1105
DGCONBase< st > CONB
Definition: pdelab.hh:906
const LS * operator->() const
Definition: pdelab.hh:1798
ISTLBackend_NOVLP_CG_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1835
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:598
Overlapping parallel conjugate gradient solver preconditioned with AMG smoothed by SSOR...
Definition: istl/ovlpistlsolverbackend.hh:1114
CONB::CON CON
Definition: pdelab.hh:1389
GFS & getGFS()
Definition: pdelab.hh:748
N NT
Definition: pdelab.hh:1195
const T & getGrid() const
Definition: pdelab.hh:165
extend conforming constraints class by processor boundary
Definition: conforming.hh:101
GFS & getGFS()
Definition: pdelab.hh:1411
CON & getCON()
Definition: pdelab.hh:835
P0ParallelConstraints CON
Definition: pdelab.hh:864
const LS & operator*() const
Definition: pdelab.hh:1822
Grid & getGrid()
Definition: pdelab.hh:290
GFS & getGFS()
Definition: pdelab.hh:629
LS & getLS()
Definition: pdelab.hh:2017
Definition: pdelab.hh:1806
void maskForeignDOFs(X &x) const
Mask out all DOFs not owned by the current process with 0.
Definition: parallelhelper.hh:113
StructuredGrid(Dune::GeometryType::BasicType meshtype, array< double, dimworld > lower_left, array< double, dimworld > upper_right, array< unsigned int, dim > cells)
Definition: pdelab.hh:120
N NT
Definition: pdelab.hh:1291
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1298
CON & getCON()
Definition: pdelab.hh:489
LS * operator->()
Definition: pdelab.hh:1970
Definition: pdelab.hh:890
CGFEMBase< ES, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:710
const LS & operator*() const
Definition: pdelab.hh:2021
const GO & getGO() const
Definition: pdelab.hh:1699
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:462
leaf of a function tree
Definition: function.hh:576
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:451
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1357
Definition: l2orthonormal.hh:254
const CC & getCC() const
Definition: pdelab.hh:647
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1201
const GO * operator->() const
Definition: pdelab.hh:1555
LS & operator*()
Definition: pdelab.hh:1845
Sequential conjugate gradient solver preconditioned with AMG smoothed by SSOR.
Definition: istl/seqistlsolverbackend.hh:682
CC & getCC()
Definition: pdelab.hh:1130
GO & getGO()
Definition: pdelab.hh:1642
const CC & getCC() const
Definition: pdelab.hh:766
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:911
const LS & operator*() const
Definition: pdelab.hh:1872
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1812
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1423
traits class holding the function signature, same as in local function
Definition: function.hh:175
ISTLBackend_SEQ_BCGS_SSOR LS
Definition: pdelab.hh:1887
const LS * operator->() const
Definition: pdelab.hh:1997
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:562
GO & operator*()
Definition: pdelab.hh:1704
Grid & operator*()
Definition: pdelab.hh:301
T * operator->()
Definition: pdelab.hh:175
T Grid
Definition: pdelab.hh:1381
const GO & operator*() const
Definition: pdelab.hh:1550
const LS * operator->() const
Definition: pdelab.hh:1873
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: istl/ovlpistlsolverbackend.hh:861
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1104
Definition: pdelab.hh:1956
A grid function space.
Definition: gridfunctionspace.hh:163
FEM & getFEM()
Definition: pdelab.hh:425
void constraints(const GFS &gfs, CG &cg, const bool verbose=false)
construct constraints
Definition: constraints.hh:751
CC & getCC()
Definition: pdelab.hh:760
LS * operator->()
Definition: pdelab.hh:1796