3 #ifndef DUNE_PDELAB_BOILERPLATE_PDELAB_HH 4 #define DUNE_PDELAB_BOILERPLATE_PDELAB_HH 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/alugrid/dgf.hh> 46 #include <dune/grid/utility/structuredgridfactory.hh> 47 #include <dune/grid/io/file/gmshreader.hh> 49 #include <dune/istl/bvector.hh> 50 #include <dune/istl/operators.hh> 51 #include <dune/istl/solvers.hh> 52 #include <dune/istl/solvercategory.hh> 53 #include <dune/istl/preconditioners.hh> 54 #include <dune/istl/io.hh> 56 #include <dune/istl/paamg/amg.hh> 93 typedef typename T::ctype
ctype;
94 static const int dim = T::dimension;
100 FieldVector<ctype,dimworld> lowerLeft(0.0);
101 FieldVector<ctype,dimworld> upperRight(1.0);
102 array<unsigned int,dim> elements; elements.fill(cells);
104 StructuredGridFactory<T> factory;
106 if (meshtype==Dune::GeometryType::cube)
107 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
108 else if (meshtype==Dune::GeometryType::simplex)
109 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
112 DUNE_THROW(GridError, className<StructuredGrid>()
113 <<
"::StructuredGrid(): grid type must be simplex or cube ");
119 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
120 array<unsigned int,dim> cells)
122 FieldVector<ctype,dimworld> lowerLeft;
123 FieldVector<ctype,dimworld> upperRight;
124 array<unsigned int,dim> elements;
129 lowerLeft[i] = lower_left[i];
130 upperRight[i] = upper_right[i];
132 for (
size_t i=0; i<
dim; i++)
134 elements[i] = cells[i];
137 StructuredGridFactory<T> factory;
139 if (meshtype==Dune::GeometryType::cube)
140 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
141 else if (meshtype==Dune::GeometryType::simplex)
142 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
145 DUNE_THROW(GridError, className<StructuredGrid>()
146 <<
"::StructuredGrid(): grid type must be simplex or cube ");
175 return gridp.operator->();
185 return gridp.operator->();
190 std::shared_ptr<T> gridp;
205 StructuredGrid (Dune::GeometryType::BasicType meshtype,
unsigned int cells,
int overlap=1)
208 if (meshtype!=Dune::GeometryType::cube)
209 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
212 Dune::FieldVector<double,dimworld> L(1.0);
213 std::array<int,dimworld> N(Dune::fill_array<int,dimworld>(cells));
214 std::bitset<dimworld> B(
false);
217 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
222 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
223 array<unsigned int,dim> cells,
int overlap=1)
227 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
228 DUNE_THROW(GridError, className<StructuredGrid>()
229 <<
"::createCubeGrid(): The lower coordinates " 230 "must be at the origin for YaspGrid.");
233 if (meshtype!=Dune::GeometryType::cube)
234 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
237 Dune::FieldVector<double,dimworld> L;
238 std::array<int,dimworld> N;
239 std::bitset<dimworld> B(
false);
242 L[i] = upper_right[i];
247 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
252 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
253 array<unsigned int,dim> cells, array<bool,dim>
periodic,
int overlap=1)
257 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
258 DUNE_THROW(GridError, className<StructuredGrid>()
259 <<
"::createCubeGrid(): The lower coordinates " 260 "must be at the origin for YaspGrid.");
263 if (meshtype!=Dune::GeometryType::cube)
264 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
267 Dune::FieldVector<double,dimworld> L;
268 std::array<int,dimworld> N;
269 std::bitset<dimworld> B(
false);
272 L[i] = upper_right[i];
278 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
306 return gridp.operator->();
316 return gridp.operator->();
320 std::shared_ptr<Grid> gridp;
331 static const int dim = T::dimension;
335 UnstructuredGrid (std::string filename,
bool verbose =
true,
bool insert_boundary_segments=
true)
337 Dune::GridFactory<T> factory;
338 Dune::GmshReader<T>::read(factory,filename,verbose,insert_boundary_segments);
339 gridp = std::shared_ptr<T>(factory.createGrid());
367 return gridp.operator->();
377 return gridp.operator->();
381 std::shared_ptr<T> gridp;
390 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim, Dune::GeometryType::BasicType gt>
394 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
402 femp = std::shared_ptr<FEM>(
new FEM(gridview));
406 const FEM&
getFEM()
const {
return *femp;}
409 std::shared_ptr<FEM> femp;
412 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
420 femp = std::shared_ptr<FEM>(
new FEM(gridview));
424 const FEM&
getFEM()
const {
return *femp;}
427 std::shared_ptr<FEM> femp;
439 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>
443 template<
typename Gr
id,
typename BCType,
typename GV>
451 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
456 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
459 template<
typename GFS>
462 const CON&
getCON()
const {
return *conp;}
463 template<
typename GFS,
typename DOF>
466 std::shared_ptr<CON> conp;
469 template<
typename Gr
id,
typename BCType,
typename GV>
477 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
482 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
485 template<
typename GFS>
488 const CON&
getCON()
const {
return *conp;}
489 template<
typename GFS,
typename DOF>
492 std::shared_ptr<CON> conp;
495 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
503 conp = std::shared_ptr<CON>(
new CON());
508 conp = std::shared_ptr<CON>(
new CON());
511 template<
typename GFS>
514 const CON&
getCON()
const {
return *conp;}
515 template<
typename GFS,
typename DOF>
518 std::shared_ptr<CON> conp;
521 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
529 conp = std::shared_ptr<CON>(
new CON());
534 conp = std::shared_ptr<CON>(
new CON());
537 template<
typename GFS>
540 const CON&
getCON()
const {
return *conp;}
541 template<
typename GFS,
typename DOF>
548 if (gfs.gridView().comm().size()>1)
549 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
552 std::shared_ptr<CON> conp;
555 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
562 conp = std::shared_ptr<CON>(
new CON);
565 template<
typename GFS>
568 template<
typename GFS,
typename DOF>
571 std::shared_ptr<CON> conp;
576 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
577 Dune::GeometryType::BasicType gt,
MeshType mt, SolverCategory::Category st = SolverCategory::sequential,
584 typedef typename T::LeafGridView
GV;
586 static const int dim = T::dimension;
592 typedef typename FEMB::FEM
FEM;
593 typedef typename CONB::CON
CON;
601 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
606 : gv(grid.leafGridView()), femb(gv), conb(grid,bctype)
608 gfsp = std::shared_ptr<GFS>(
new GFS(gv,femb.getFEM(),conb.getCON()));
609 gfsp->name(
"cgspace");
612 conb.postGFSHook(*gfsp);
613 ccp = std::shared_ptr<CC>(
new CC());
618 return femb.getFEM();
623 return femb.getFEM();
664 conb.make_consistent(*gfsp,x);
670 conb.make_consistent(*gfsp,x);
676 conb.make_consistent(*gfsp,xout);
682 conb.make_consistent(*gfsp,xout);
689 std::shared_ptr<GFS> gfsp;
690 std::shared_ptr<CC> ccp;
694 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
695 Dune::GeometryType::BasicType gt,
MeshType mt,
697 class CGSpace<T, N, degree, BCType, gt, mt, SolverCategory::nonoverlapping, VBET> {
702 typedef typename T::LeafGridView
GV;
705 static const int dim = T::dimension;
711 typedef typename FEMB::FEM
FEM;
712 typedef typename CONB::CON
CON;
720 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
725 : gv(grid.leafGridView()), femb(gv), conb(grid,bctype)
727 gfsp = std::shared_ptr<GFS>(
new GFS(gv,femb.getFEM(),conb.getCON()));
728 gfsp->name(
"cgspace");
732 ccp = std::shared_ptr<CC>(
new CC());
737 return femb.getFEM();
742 return femb.getFEM();
783 conb.make_consistent(*gfsp,x);
789 conb.make_consistent(*gfsp,x);
795 conb.make_consistent(*gfsp,xout);
801 conb.make_consistent(*gfsp,xout);
808 std::shared_ptr<GFS> gfsp;
809 std::shared_ptr<CC> ccp;
819 template<SolverCategory::Category st>
830 conp = std::shared_ptr<CON>(
new CON());
833 const CON&
getCON()
const {
return *conp;}
834 template<
typename GFS,
typename DOF>
837 std::shared_ptr<CON> conp;
847 conp = std::shared_ptr<CON>(
new CON());
850 const CON&
getCON()
const {
return *conp;}
851 template<
typename GFS,
typename DOF>
854 std::shared_ptr<CON> conp;
864 conp = std::shared_ptr<CON>(
new CON());
867 const CON&
getCON()
const {
return *conp;}
868 template<
typename GFS,
typename DOF>
875 if (gfs.gridView().comm().size()>1)
876 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
879 std::shared_ptr<CON> conp;
884 template<
typename T,
typename N,
unsigned int degree,
885 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
893 typedef typename T::LeafGridView
GV;
895 static const int dim = T::dimension;
904 typedef typename CONB::CON
CON;
909 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
915 femp = std::shared_ptr<FEM>(
new FEM());
916 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
919 ccp = std::shared_ptr<CC>(
new CC());
923 const FEM&
getFEM()
const {
return *femp; }
929 const GFS&
getGFS ()
const {
return *gfsp;}
935 const CC&
getCC ()
const {
return *ccp;}
937 template<
class BCTYPE>
952 conb.make_consistent(*gfsp,x);
958 conb.make_consistent(*gfsp,x);
964 conb.make_consistent(*gfsp,xout);
970 conb.make_consistent(*gfsp,xout);
976 std::shared_ptr<FEM> femp;
977 std::shared_ptr<GFS> gfsp;
978 std::shared_ptr<CC> ccp;
983 template<
typename T,
typename N,
unsigned int degree,
984 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
993 typedef typename T::LeafGridView
GV;
995 static const int dim = T::dimension;
1004 typedef typename CONB::CON
CON;
1009 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1015 femp = std::shared_ptr<FEM>(
new FEM());
1016 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1019 ccp = std::shared_ptr<CC>(
new CC());
1035 const CC&
getCC ()
const {
return *ccp;}
1037 template<
class BCTYPE>
1052 conb.make_consistent(*gfsp,x);
1058 conb.make_consistent(*gfsp,x);
1064 conb.make_consistent(*gfsp,xout);
1070 conb.make_consistent(*gfsp,xout);
1076 std::shared_ptr<FEM> femp;
1077 std::shared_ptr<GFS> gfsp;
1078 std::shared_ptr<CC> ccp;
1083 template<
typename T,
typename N,
unsigned int degree,
1084 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1092 typedef typename T::LeafGridView
GV;
1094 static const int dim = T::dimension;
1097 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim>
FEM;
1099 typedef typename CONB::CON
CON;
1104 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1110 femp = std::shared_ptr<FEM>(
new FEM());
1111 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1114 ccp = std::shared_ptr<CC>(
new CC());
1130 const CC&
getCC ()
const {
return *ccp;}
1132 template<
class BCTYPE>
1147 conb.make_consistent(*gfsp,x);
1153 conb.make_consistent(*gfsp,x);
1159 conb.make_consistent(*gfsp,xout);
1165 conb.make_consistent(*gfsp,xout);
1171 std::shared_ptr<FEM> femp;
1172 std::shared_ptr<GFS> gfsp;
1173 std::shared_ptr<CC> ccp;
1178 template<
typename T,
typename N,
unsigned int degree,
1179 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1188 typedef typename T::LeafGridView
GV;
1190 static const int dim = T::dimension;
1193 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim,QkDGBasisPolynomial::lobatto>
FEM;
1195 typedef typename CONB::CON
CON;
1200 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1206 femp = std::shared_ptr<FEM>(
new FEM());
1207 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1210 ccp = std::shared_ptr<CC>(
new CC());
1226 const CC&
getCC ()
const {
return *ccp;}
1228 template<
class BCTYPE>
1243 conb.make_consistent(*gfsp,x);
1249 conb.make_consistent(*gfsp,x);
1255 conb.make_consistent(*gfsp,xout);
1261 conb.make_consistent(*gfsp,xout);
1267 std::shared_ptr<FEM> femp;
1268 std::shared_ptr<GFS> gfsp;
1269 std::shared_ptr<CC> ccp;
1274 template<
typename T,
typename N,
unsigned int degree,
1275 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1284 typedef typename T::LeafGridView
GV;
1286 static const int dim = T::dimension;
1289 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim,QkDGBasisPolynomial::legendre>
FEM;
1291 typedef typename CONB::CON
CON;
1296 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1302 femp = std::shared_ptr<FEM>(
new FEM());
1303 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1306 ccp = std::shared_ptr<CC>(
new CC());
1322 const CC&
getCC ()
const {
return *ccp;}
1324 template<
class BCTYPE>
1339 conb.make_consistent(*gfsp,x);
1345 conb.make_consistent(*gfsp,x);
1351 conb.make_consistent(*gfsp,xout);
1357 conb.make_consistent(*gfsp,xout);
1363 std::shared_ptr<FEM> femp;
1364 std::shared_ptr<GFS> gfsp;
1365 std::shared_ptr<CC> ccp;
1370 template<
typename T,
typename N,
1371 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1379 typedef typename T::LeafGridView
GV;
1381 static const int dim = T::dimension;
1386 typedef typename CONB::CON
CON;
1391 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1395 P0Space (
const GV& gridview) : gv(gridview), conb()
1397 femp = std::shared_ptr<FEM>(
new FEM(Dune::GeometryType(gt,dim)));
1398 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1401 ccp = std::shared_ptr<CC>(
new CC());
1417 const CC&
getCC ()
const {
return *ccp;}
1419 template<
class BCTYPE>
1434 conb.make_consistent(*gfsp,x);
1440 conb.make_consistent(*gfsp,x);
1446 conb.make_consistent(*gfsp,xout);
1452 conb.make_consistent(*gfsp,xout);
1458 std::shared_ptr<FEM> femp;
1459 std::shared_ptr<GFS> gfsp;
1460 std::shared_ptr<CC> ccp;
1466 template<
typename FS,
typename Functor>
1468 :
public GridFunctionBase<GridFunctionTraits<typename FS::GV, typename FS::NT,
1469 1,FieldVector<typename FS::NT,1> >
1470 ,UserFunction<FS,Functor> >
1487 std::vector<double> x__(x.size());
1488 for (
size_t i=0; i<x.size(); ++i) x__[i]=x_[i];
1494 return fs.getGFS().gridView();
1503 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1510 typename FS::NT,
typename FS::NT,
typename FS::NT,
1511 typename FS::CC,
typename FS::CC>
GO;
1516 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,MBE(nonzeros)));
1538 return gop.operator->();
1548 return gop.operator->();
1552 std::shared_ptr<GO> gop;
1556 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1563 typename FS::NT,
typename FS::NT,
typename FS::NT,
1564 typename FS::CC,
typename FS::CC>
GO;
1569 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,mbe));
1591 return gop.operator->();
1601 return gop.operator->();
1605 std::shared_ptr<GO> gop;
1610 template<
typename FSU,
typename FSV,
typename LOP, SolverCategory::Category st>
1617 typename FSU::NT,
typename FSU::NT,
typename FSU::NT,
1618 typename FSU::CC,
typename FSV::CC>
GO;
1623 gop = std::shared_ptr<GO>(
new GO(fsu.getGFS(),fsu.getCC(),fsv.getGFS(),fsv.getCC(),lop,MBE(nonzeros)));
1645 return gop.operator->();
1655 return gop.operator->();
1659 std::shared_ptr<GO> gop;
1663 template<
typename GO1,
typename GO2,
bool implicit = true>
1674 gop = std::shared_ptr<GO>(
new GO(*go1,*go2));
1696 return gop.operator->();
1706 return gop.operator->();
1710 std::shared_ptr<GO> gop;
1715 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1723 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1725 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_,reuse_,usesuperlu_));
1729 const LS&
getLS ()
const {
return *lsp;}
1736 std::shared_ptr<LS> lsp;
1740 template<
typename FS,
typename ASS>
1748 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1750 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1754 const LS&
getLS ()
const {
return *lsp;}
1761 std::shared_ptr<LS> lsp;
1765 template<
typename FS,
typename ASS>
1773 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1775 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1779 const LS&
getLS ()
const {
return *lsp;}
1786 std::shared_ptr<LS> lsp;
1790 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1798 int steps_=5,
int verbose_=1)
1800 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1804 const LS&
getLS ()
const {
return *lsp;}
1811 std::shared_ptr<LS> lsp;
1815 template<
typename FS,
typename ASS>
1823 int steps_=5,
int verbose_=1)
1825 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,steps_,verbose_));
1829 const LS&
getLS ()
const {
return *lsp;}
1836 std::shared_ptr<LS> lsp;
1840 template<
typename FS,
typename ASS>
1848 int steps_=5,
int verbose_=1)
1850 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,steps_,verbose_));
1854 const LS&
getLS ()
const {
return *lsp;}
1861 std::shared_ptr<LS> lsp;
1867 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1876 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1880 const LS&
getLS ()
const {
return *lsp;}
1887 std::shared_ptr<LS> lsp;
1891 template<
typename FS,
typename ASS>
1900 lsp = std::shared_ptr<LS>(
new LS(ass.getGO(),maxiter_,3,verbose_));
1904 const LS&
getLS ()
const {
return *lsp;}
1911 std::shared_ptr<LS> lsp;
1915 template<
typename FS,
typename ASS>
1924 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,3,verbose_));
1928 const LS&
getLS ()
const {
return *lsp;}
1935 std::shared_ptr<LS> lsp;
1940 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1949 lsp = std::shared_ptr<LS>(
new LS());
1953 const LS&
getLS ()
const {
return *lsp;}
1960 std::shared_ptr<LS> lsp;
1965 template<
typename FS,
typename ASS>
1974 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
1978 const LS&
getLS ()
const {
return *lsp;}
1985 std::shared_ptr<LS> lsp;
1990 template<
typename FS,
typename ASS>
1999 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
2003 const LS&
getLS ()
const {
return *lsp;}
2010 std::shared_ptr<LS> lsp;
2017 #endif // DUNE_PDELAB_BOILERPLATE_PDELAB_HH void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:490
ISTLBackend_OVLP_CG_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1845
GalerkinGlobalAssemblerNewBackend(const FS &fs, LOP &lop, const MBE &mbe)
Definition: pdelab.hh:1567
CONB::CON CON
Definition: pdelab.hh:1099
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: ovlpistlsolverbackend.hh:1010
LS * operator->()
Definition: pdelab.hh:1781
ISTLBackend_SEQ_BCGS_SSOR LS
Definition: pdelab.hh:1872
Definition: pdelab.hh:1791
T Grid
Definition: pdelab.hh:1283
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:661
Definition: gridoperator/onestep.hh:16
LS & getLS()
Definition: pdelab.hh:1952
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1201
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:949
CGCONBase< Grid, degree, gt, mt, st, BCType > CONB
Definition: pdelab.hh:590
T Grid
Definition: pdelab.hh:583
Backend for sequential conjugate gradient solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:348
CC & getCC()
Definition: pdelab.hh:1032
N NT
Definition: pdelab.hh:717
Definition: pdelab.hh:1716
CC & getCC()
Definition: pdelab.hh:758
const FEM & getFEM() const
Definition: pdelab.hh:1310
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:786
void clearConstraints()
Definition: pdelab.hh:1044
T * operator->()
Definition: pdelab.hh:365
LS & operator*()
Definition: pdelab.hh:1979
Definition: pdelab.hh:1941
const GO * operator->() const
Definition: pdelab.hh:1704
const GFS & getGFS() const
Definition: pdelab.hh:1029
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:908
GO & getGO()
Definition: pdelab.hh:1678
const LS & getLS() const
Definition: pdelab.hh:1729
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:538
leaf of a function tree
Definition: function.hh:575
Definition: pdelab.hh:1868
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:464
const LS * operator->() const
Definition: pdelab.hh:1932
PkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:398
const LS & operator*() const
Definition: pdelab.hh:1907
const CON & getCON() const
Definition: pdelab.hh:867
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:719
const GO & operator*() const
Definition: pdelab.hh:1648
void clearConstraints()
Definition: pdelab.hh:1235
CON & getCON()
Definition: pdelab.hh:461
CONB::CON CON
Definition: pdelab.hh:1291
CON & getCON()
Definition: pdelab.hh:849
periodic boundary intersection (neighbor() == true && boundary() == true)
T::ctype ctype
Definition: pdelab.hh:994
GO & operator*()
Definition: pdelab.hh:1584
Sequential conjugate gradient solver preconditioned with AMG smoothed by SSOR.
Definition: seqistlsolverbackend.hh:686
T::ctype ctype
Definition: pdelab.hh:1189
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1898
Definition: parallelhelper.hh:53
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:418
T::LeafGridView GV
Definition: pdelab.hh:993
Definition: pdelab.hh:1182
NoConstraints CON
Definition: pdelab.hh:827
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1198
const GFS & getGFS() const
Definition: pdelab.hh:633
FEM & getFEM()
Definition: pdelab.hh:405
const LS & operator*() const
Definition: pdelab.hh:1757
GFS & getGFS()
Definition: pdelab.hh:1313
const GO & operator*() const
Definition: pdelab.hh:1594
const CC & getCC() const
Definition: pdelab.hh:764
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: seqistlsolverbackend.hh:503
T & operator*()
Definition: pdelab.hh:168
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1156
Overlapping parallel conjugate gradient solver preconditioned with AMG smoothed by SSOR...
Definition: ovlpistlsolverbackend.hh:1258
Dune::PDELab::ISTLBackend_NOVLP_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1745
GO & getGO()
Definition: pdelab.hh:1520
Definition: pdelab.hh:887
T::ctype ctype
Definition: pdelab.hh:93
LS & operator*()
Definition: pdelab.hh:1881
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:400
const LS & operator*() const
Definition: pdelab.hh:1981
Definition: partitionviewentityset.hh:34
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:1511
Definition: genericdatahandle.hh:622
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1294
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:909
DGCONBase< st > CONB
Definition: pdelab.hh:1385
const CON & getCON() const
Definition: pdelab.hh:488
GFS & getGFS()
Definition: pdelab.hh:1121
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:343
T::ctype ctype
Definition: pdelab.hh:585
CC & getCC()
Definition: pdelab.hh:1319
ISTLBackend_NOVLP_CG_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1820
const FS::GV & getGridView() const
Definition: pdelab.hh:1492
DGQkGLSpace(const GV &gridview)
Definition: pdelab.hh:1204
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:532
StructuredGrid(Dune::GeometryType::BasicType meshtype, array< double, dimworld > lower_left, array< double, dimworld > upper_right, array< unsigned int, dim > cells)
Definition: pdelab.hh:118
LS * operator->()
Definition: pdelab.hh:1806
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:938
DGCONBase< st > CONB
Definition: pdelab.hh:1194
const CON & getCON() const
Definition: pdelab.hh:850
const GO & getGO() const
Definition: pdelab.hh:1684
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1258
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1437
VBET VBE
Definition: pdelab.hh:1100
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:907
N NT
Definition: pdelab.hh:1096
A grid function space.
Definition: gridfunctionspace.hh:169
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition: function.hh:117
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:480
const LS & operator*() const
Definition: pdelab.hh:1931
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1007
CON & getCON()
Definition: pdelab.hh:866
T Grid
Definition: pdelab.hh:1187
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:454
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1008
FEM & getFEM()
Definition: pdelab.hh:1117
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:718
const LS & operator*() const
Definition: pdelab.hh:1732
Definition: pdelab.hh:1557
Definition: istl/descriptors.hh:50
const GFS & getGFS() const
Definition: pdelab.hh:752
LS & operator*()
Definition: pdelab.hh:1929
T::ctype ctype
Definition: pdelab.hh:894
const LS & operator*() const
Definition: pdelab.hh:1832
OverlappingConformingDirichletConstraints CON
Definition: pdelab.hh:525
T::LeafGridView GV
Definition: pdelab.hh:1092
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:1722
Definition: pdelab.hh:1373
VBET VBE
Definition: pdelab.hh:1292
T Grid
Definition: pdelab.hh:992
CC & getCC()
Definition: pdelab.hh:1223
const FEM & getFEM() const
Definition: pdelab.hh:1405
LS & getLS()
Definition: pdelab.hh:1879
T::ctype ctype
Definition: pdelab.hh:330
void copy_nonconstrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:989
GFS & getGFS()
Definition: pdelab.hh:926
const Grid * operator->() const
Definition: pdelab.hh:314
const T & operator*() const
Definition: pdelab.hh:370
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1295
Parallel P0 constraints for overlapping grids.
Definition: p0.hh:15
const CON & getCON() const
Definition: pdelab.hh:833
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1009
Definition: pdelab.hh:1086
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1325
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:602
CC & getCC()
Definition: pdelab.hh:639
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1922
const T & getGrid() const
Definition: pdelab.hh:163
GO * operator->()
Definition: pdelab.hh:1694
GO::Jacobian MAT
Definition: pdelab.hh:1512
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1133
Dune::PDELab::ISTLBackend_OVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1970
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1293
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1010
N NT
Definition: pdelab.hh:1288
Dune::PDELab::NonOverlappingEntitySet< GV > ES
Definition: pdelab.hh:704
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1055
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:501
GO & getGO()
Definition: pdelab.hh:1573
const LS * operator->() const
Definition: pdelab.hh:2007
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:251
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:460
P0ParallelGhostConstraints CON
Definition: pdelab.hh:844
Grid * operator->()
Definition: pdelab.hh:304
const GO & getGO() const
Definition: pdelab.hh:1633
GO & operator*()
Definition: pdelab.hh:1531
DGLegendreSpace(const GV &gridview)
Definition: pdelab.hh:1300
const T * operator->() const
Definition: pdelab.hh:183
Standard grid operator implementation.
Definition: gridoperator.hh:57
const LS * operator->() const
Definition: pdelab.hh:1982
Overlapping parallel BiCGStab solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:661
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1104
VBET VBE
Definition: pdelab.hh:714
MeshType
Definition: pdelab.hh:433
Definition: pdelab.hh:440
const CON & getCON() const
Definition: pdelab.hh:514
const GFS & getGFS() const
Definition: pdelab.hh:929
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:869
wrap a GridFunction so it can be used with the VTKWriter from dune-grid.
Definition: vtkexport.hh:22
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:955
Definition: pdelab.hh:391
Definition: pdelab.hh:1664
const FEM & getFEM() const
Definition: pdelab.hh:740
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1246
FEM & getFEM()
Definition: pdelab.hh:423
GO * operator->()
Definition: pdelab.hh:1589
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:596
GlobalAssembler(const FSU &fsu, const FSV &fsv, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1621
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::legendre > FEM
Definition: pdelab.hh:1289
LS & getLS()
Definition: pdelab.hh:1803
const LS * operator->() const
Definition: pdelab.hh:1833
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1390
Definition: pdelab.hh:1504
VBET VBE
Definition: pdelab.hh:595
LS & operator*()
Definition: pdelab.hh:1954
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:798
const LS & getLS() const
Definition: pdelab.hh:1754
const LS & getLS() const
Definition: pdelab.hh:1953
const GO & getGO() const
Definition: pdelab.hh:1579
GFS & getGFS()
Definition: pdelab.hh:627
Dune::PDELab::OneStepGridOperator< typename GO1::GO, typename GO2::GO, implicit > GO
Definition: pdelab.hh:1669
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:673
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:512
const LS & getLS() const
Definition: pdelab.hh:1854
const GFS & getGFS() const
Definition: pdelab.hh:1411
const CON & getCON() const
Definition: pdelab.hh:567
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1240
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1972
LS * operator->()
Definition: pdelab.hh:1882
N NT
Definition: pdelab.hh:997
const CC & getCC() const
Definition: pdelab.hh:1226
const Grid & getGrid() const
Definition: pdelab.hh:294
LS * operator->()
Definition: pdelab.hh:1906
GFS & getGFS()
Definition: pdelab.hh:1408
const LS * operator->() const
Definition: pdelab.hh:1808
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1847
const FEM & getFEM() const
Definition: pdelab.hh:923
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1389
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1342
void clearConstraints()
Definition: pdelab.hh:1139
Backend for sequential BiCGSTAB solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:261
P0ParallelConstraints CON
Definition: pdelab.hh:861
Grid & operator*()
Definition: pdelab.hh:299
Dune::PDELab::ISTLBackend_NOVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1995
const LS & getLS() const
Definition: pdelab.hh:1880
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1101
QkDGLocalFiniteElementMap< ctype, NT, degree, dim > FEM
Definition: pdelab.hh:1097
void set_constrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
construct constraints from given boundary condition function
Definition: constraints.hh:798
Traits::Jacobian Jacobian
Definition: gridoperator/onestep.hh:55
const LS & operator*() const
Definition: pdelab.hh:1857
T::LeafGridView GV
Definition: pdelab.hh:702
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:961
T Grid
Definition: pdelab.hh:1378
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:650
LS & getLS()
Definition: pdelab.hh:1927
T * operator->()
Definition: pdelab.hh:173
T::ctype ctype
Definition: pdelab.hh:1380
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt > FEM
Definition: pdelab.hh:901
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1061
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:560
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1449
Grid & getGrid()
Definition: pdelab.hh:288
LS & getLS()
Definition: pdelab.hh:1728
void constraints(const GFS &gfs, CG &cg, const bool verbose=false)
construct constraints
Definition: constraints.hh:751
GridFunctionTraits< typename FS::GV, typename FS::NT, 1, FieldVector< typename FS::NT, 1 > > Traits
Definition: pdelab.hh:1474
DGCONBase< st > CONB
Definition: pdelab.hh:1003
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1615
T Grid
Definition: pdelab.hh:892
FEM & getFEM()
Definition: pdelab.hh:1404
T::ctype ctype
Definition: pdelab.hh:1093
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:221
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:151
const CC & getCC() const
Definition: pdelab.hh:1035
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:599
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1874
const T & operator*() const
Definition: pdelab.hh:178
DGCONBase()
Definition: pdelab.hh:862
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:792
UnstructuredGrid(std::string filename, bool verbose=true, bool insert_boundary_segments=true)
Definition: pdelab.hh:335
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1443
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:910
LS & operator*()
Definition: pdelab.hh:1755
const CC & getCC() const
Definition: pdelab.hh:1130
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:769
LS & operator*()
Definition: pdelab.hh:1905
Dune::PDELab::ISTLBackend_SEQ_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1720
T::LeafGridView GV
Definition: pdelab.hh:893
GO & operator*()
Definition: pdelab.hh:1689
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:1482
const FEM & getFEM() const
Definition: pdelab.hh:1214
const LS & getLS() const
Definition: pdelab.hh:1904
void clearConstraints()
Definition: pdelab.hh:944
const CC & getCC() const
Definition: pdelab.hh:935
CON & getCON()
Definition: pdelab.hh:539
DGCONBase< st > CONB
Definition: pdelab.hh:1098
YaspGrid< dim > Grid
Definition: pdelab.hh:200
const CC & getCC() const
Definition: pdelab.hh:645
DGPkSpace(const GV &gridview)
Definition: pdelab.hh:913
DGCONBase()
Definition: pdelab.hh:845
LS * operator->()
Definition: pdelab.hh:1756
LS & operator*()
Definition: pdelab.hh:1805
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1354
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1038
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1348
LS & getLS()
Definition: pdelab.hh:1828
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:780
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:1564
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1006
P0Space(const GV &gridview)
Definition: pdelab.hh:1395
GalerkinGlobalAssembler(const FS &fs, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1514
N NT
Definition: pdelab.hh:1383
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1420
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1197
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:1618
Definition: l2orthonormal.hh:257
QkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:416
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1797
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1102
T Grid
Definition: pdelab.hh:1091
DGCONBase< st > CONB
Definition: pdelab.hh:1290
T::ctype ctype
Definition: pdelab.hh:703
Dune::PDELab::ISTLBackend_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1770
const LS * operator->() const
Definition: pdelab.hh:1908
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::lobatto > FEM
Definition: pdelab.hh:1193
const LS * operator->() const
Definition: pdelab.hh:1783
GO * operator->()
Definition: pdelab.hh:1643
const LS & operator*() const
Definition: pdelab.hh:1807
const FEM & getFEM() const
Definition: pdelab.hh:406
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells, int overlap=1)
Definition: pdelab.hh:205
FEM & getFEM()
Definition: pdelab.hh:1213
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt, N, Dune::PB::BasisType::Qk > FEM
Definition: pdelab.hh:1001
GO * operator->()
Definition: pdelab.hh:1536
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:967
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1508
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1105
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1049
const LS & operator*() const
Definition: pdelab.hh:2006
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:601
const GO & operator*() const
Definition: pdelab.hh:1699
typename impl::BackendVectorSelector< GridFunctionSpace, FieldType >::Type Vector
alias of the return type of BackendVectorSelector
Definition: backend/interface.hh:106
T Grid
Definition: pdelab.hh:329
FEM & getFEM()
Definition: pdelab.hh:616
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1103
LS & getLS()
Definition: pdelab.hh:1778
CON & getCON()
Definition: pdelab.hh:566
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1668
std::shared_ptr< Grid > getSharedPtr()
Definition: pdelab.hh:282
static const int dim
Definition: pdelab.hh:94
const GO * operator->() const
Definition: pdelab.hh:1546
FEMB::FEM FEM
Definition: pdelab.hh:711
T & getGrid()
Definition: pdelab.hh:349
GFS & getGFS()
Definition: pdelab.hh:1217
Nonoverlapping parallel CG solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:859
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:605
Definition: pdelab.hh:579
CGCONBase< Grid, degree, gt, mt, SolverCategory::nonoverlapping, BCType > CONB
Definition: pdelab.hh:709
Backend using (possibly nested) ISTL BCRSMatrices.
Definition: bcrsmatrixbackend.hh:190
LS * operator->()
Definition: pdelab.hh:1831
FEM & getFEM()
Definition: pdelab.hh:922
CONB::CON CON
Definition: pdelab.hh:1195
Overlapping parallel CGS solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:727
const GFS & getGFS() const
Definition: pdelab.hh:1316
LS * operator->()
Definition: pdelab.hh:1980
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: novlpistlsolverbackend.hh:634
const T * operator->() const
Definition: pdelab.hh:375
ConformingDirichletConstraints CON
Definition: pdelab.hh:499
CGFEMBase< GV, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:708
extend conforming constraints class by processor boundary
Definition: conforming.hh:101
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:724
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:486
LS & operator*()
Definition: pdelab.hh:1830
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:542
CONB::CON CON
Definition: pdelab.hh:904
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition: function.hh:48
void maskForeignDOFs(X &x) const
Mask out all DOFs not owned by the current process with 0.
Definition: parallelhelper.hh:115
N NT
Definition: pdelab.hh:598
Dune::PDELab::ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1561
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1391
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:475
LS & getLS()
Definition: pdelab.hh:2002
T::LeafGridView GV
Definition: pdelab.hh:1284
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1297
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:720
const GFS & getGFS() const
Definition: pdelab.hh:1124
GO & operator*()
Definition: pdelab.hh:1638
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:906
Definition: pdelab.hh:434
FEMB::FEM FEM
Definition: pdelab.hh:592
N NT
Definition: pdelab.hh:897
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1997
void clearConstraints()
Definition: pdelab.hh:1331
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
T::LeafGridView GV
Definition: pdelab.hh:584
Dune::PDELab::P0LocalFiniteElementMap< ctype, NT, dim > FEM
Definition: pdelab.hh:1384
LS * operator->()
Definition: pdelab.hh:2005
T Grid
Definition: pdelab.hh:701
CONB::CON CON
Definition: pdelab.hh:1004
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1431
const LS & getLS() const
Definition: pdelab.hh:1804
FEM & getFEM()
Definition: pdelab.hh:735
const Entity & e
Definition: localfunctionspace.hh:111
LS & getLS()
Definition: pdelab.hh:1853
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::CubeGridQ1Assembler, BCType > CON
Definition: pdelab.hh:473
FEM & getFEM()
Definition: pdelab.hh:1022
T::LeafGridView GV
Definition: pdelab.hh:1188
Grid::ctype ctype
Definition: pdelab.hh:201
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:1772
Nonoverlapping parallel CG solver preconditioned with AMG smoothed by SSOR.
Definition: novlpistlsolverbackend.hh:1059
LS & getLS()
Definition: pdelab.hh:1753
Hanging Node constraints construction.
Definition: hangingnode.hh:318
const LS & getLS() const
Definition: pdelab.hh:1829
CC & getCC()
Definition: pdelab.hh:1414
Definition: pdelab.hh:820
const LS & getLS() const
Definition: pdelab.hh:2003
CONB::CON CON
Definition: pdelab.hh:712
LS & getLS()
Definition: pdelab.hh:1903
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells)
Definition: pdelab.hh:98
const FEM & getFEM() const
Definition: pdelab.hh:1023
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:569
std::enable_if< std::is_base_of< impl::WrapperBase, T >::value, Native< T > &>::type native(T &t)
Definition: backend/interface.hh:192
const LS & getLS() const
Definition: pdelab.hh:1928
const GFS & getGFS() const
Definition: pdelab.hh:1220
LS & operator*()
Definition: pdelab.hh:1730
const FEM & getFEM() const
Definition: pdelab.hh:621
const GO & operator*() const
Definition: pdelab.hh:1541
GO::Jacobian MAT
Definition: pdelab.hh:1619
void clearConstraints()
Definition: pdelab.hh:775
LS * operator->()
Definition: pdelab.hh:1930
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:449
const FEM & getFEM() const
Definition: pdelab.hh:1118
void copy_constrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:938
const FEM & getFEM() const
Definition: pdelab.hh:424
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:667
LS & operator*()
Definition: pdelab.hh:1855
LS & getLS()
Definition: pdelab.hh:1977
CON & getCON()
Definition: pdelab.hh:513
ISTLBackend_OVLP_BCGS_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1920
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1162
DGQkOPBSpace(const GV &gridview)
Definition: pdelab.hh:1013
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1229
const LS & getLS() const
Definition: pdelab.hh:1779
const GO * operator->() const
Definition: pdelab.hh:1653
DGCONBase< st > CONB
Definition: pdelab.hh:903
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1067
Definition: pdelab.hh:1278
Definition: pdelab.hh:435
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1199
void clearConstraints()
Definition: pdelab.hh:656
CGFEMBase< GV, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:589
T & operator*()
Definition: pdelab.hh:360
Definition: noconstraints.hh:16
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::SimplexGridP1Assembler, BCType > CON
Definition: pdelab.hh:447
const CC & getCC() const
Definition: pdelab.hh:1322
ISTLBackend_SEQ_CG_SSOR LS
Definition: pdelab.hh:1795
const LS * operator->() const
Definition: pdelab.hh:1858
Definition: pdelab.hh:987
const Grid & operator*() const
Definition: pdelab.hh:309
VBET VBE
Definition: pdelab.hh:1196
T::ctype ctype
Definition: pdelab.hh:1285
const LS * operator->() const
Definition: pdelab.hh:1884
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:600
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1822
const CON & getCON() const
Definition: pdelab.hh:540
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1296
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1392
GO::Jacobian MAT
Definition: pdelab.hh:1670
convert a grid function space and a coefficient vector into a grid function
Definition: gridfunctionspaceutilities.hh:72
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:527
const GO * operator->() const
Definition: pdelab.hh:1599
LS * operator->()
Definition: pdelab.hh:1955
OneStepGlobalAssembler(GO1 &go1, GO2 &go2)
Definition: pdelab.hh:1672
T & getGrid()
Definition: pdelab.hh:157
LS & operator*()
Definition: pdelab.hh:1780
Dune::PDELab::ISTLBackend_NOVLP_BCGS_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1896
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:835
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1947
T Grid
Definition: pdelab.hh:92
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:516
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:1747
const LS & operator*() const
Definition: pdelab.hh:1956
R RangeType
range type
Definition: function.hh:60
GridFunctionSpace< ES, FEM, CON, VBE > GFS
Definition: pdelab.hh:715
VBET VBE
Definition: pdelab.hh:1005
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1144
Dune::PDELab::ISTLBackend_SEQ_ExplicitDiagonal LS
Definition: pdelab.hh:1945
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1336
const T & getGrid() const
Definition: pdelab.hh:355
Definition: l2orthonormal.hh:257
const LS * operator->() const
Definition: pdelab.hh:1733
FEM & getFEM()
Definition: pdelab.hh:1309
Nonoverlapping parallel BiCGSTAB solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:834
Definition: pdelab.hh:325
Definition: pdelab.hh:1611
const CON & getCON() const
Definition: pdelab.hh:462
N NT
Definition: pdelab.hh:1192
VBET VBE
Definition: pdelab.hh:905
DGQkSpace(const GV &gridview)
Definition: pdelab.hh:1108
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1150
T::LeafGridView GV
Definition: pdelab.hh:1379
CC & getCC()
Definition: pdelab.hh:1127
CON & getCON()
Definition: pdelab.hh:832
LS * operator->()
Definition: pdelab.hh:1731
const LS * operator->() const
Definition: pdelab.hh:1758
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1200
LS & operator*()
Definition: pdelab.hh:2004
GO::Jacobian MAT
Definition: pdelab.hh:1565
const LS & operator*() const
Definition: pdelab.hh:1782
Definition: pdelab.hh:1467
const LS * operator->() const
Definition: pdelab.hh:1957
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:506
Dirichlet Constraints construction.
Definition: conforming.hh:36
GFS & getGFS()
Definition: pdelab.hh:746
const LS & getLS() const
Definition: pdelab.hh:1978
CON & getCON()
Definition: pdelab.hh:487
traits class holding the function signature, same as in local function
Definition: function.hh:175
GO & getGO()
Definition: pdelab.hh:1627
void clearConstraints()
Definition: pdelab.hh:1426
static const int dimworld
Definition: pdelab.hh:95
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:852
Dune::PDELab::Backend::Matrix< MB, Domain, Range, JF > Jacobian
The type of the jacobian.
Definition: gridoperator.hh:75
Parallel P0 constraints for nonoverlapping grids with ghosts.
Definition: p0ghost.hh:16
const GO & getGO() const
Definition: pdelab.hh:1526
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1388
void set_nonconstrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
Definition: constraints.hh:962
CONB::CON CON
Definition: pdelab.hh:1386
GFS & getGFS()
Definition: pdelab.hh:1026
CC & getCC()
Definition: pdelab.hh:932
const LS & operator*() const
Definition: pdelab.hh:1883
CONB::CON CON
Definition: pdelab.hh:593
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1252
VBET VBE
Definition: pdelab.hh:1387
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:679
const CC & getCC() const
Definition: pdelab.hh:1417
DGCONBase()
Definition: pdelab.hh:828
UserFunction(const FS &fs_, const Functor &f_)
constructor
Definition: pdelab.hh:1477
LS * operator->()
Definition: pdelab.hh:1856
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:721