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> 92 typedef typename T::ctype
ctype;
93 static const int dim = T::dimension;
99 FieldVector<ctype,dimworld> lowerLeft(0.0);
100 FieldVector<ctype,dimworld> upperRight(1.0);
101 array<unsigned int,dim> elements; elements.fill(cells);
103 StructuredGridFactory<T> factory;
105 if (meshtype==Dune::GeometryType::cube)
106 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
107 else if (meshtype==Dune::GeometryType::simplex)
108 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
111 DUNE_THROW(GridError, className<StructuredGrid>()
112 <<
"::StructuredGrid(): grid type must be simplex or cube ");
118 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
119 array<unsigned int,dim> cells)
121 FieldVector<ctype,dimworld> lowerLeft;
122 FieldVector<ctype,dimworld> upperRight;
123 array<unsigned int,dim> elements;
128 lowerLeft[i] = lower_left[i];
129 upperRight[i] = upper_right[i];
131 for (
size_t i=0; i<
dim; i++)
133 elements[i] = cells[i];
136 StructuredGridFactory<T> factory;
138 if (meshtype==Dune::GeometryType::cube)
139 gridp = factory.createCubeGrid(lowerLeft,upperRight,elements);
140 else if (meshtype==Dune::GeometryType::simplex)
141 gridp = factory.createSimplexGrid(lowerLeft,upperRight,elements);
144 DUNE_THROW(GridError, className<StructuredGrid>()
145 <<
"::StructuredGrid(): grid type must be simplex or cube ");
174 return gridp.operator->();
184 return gridp.operator->();
189 std::shared_ptr<T> gridp;
204 StructuredGrid (Dune::GeometryType::BasicType meshtype,
unsigned int cells,
int overlap=1)
207 if (meshtype!=Dune::GeometryType::cube)
208 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
211 Dune::FieldVector<double,dimworld> L(1.0);
212 std::array<int,dimworld> N(Dune::fill_array<int,dimworld>(cells));
213 std::bitset<dimworld> B(
false);
216 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
221 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
222 array<unsigned int,dim> cells,
int overlap=1)
226 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
227 DUNE_THROW(GridError, className<StructuredGrid>()
228 <<
"::createCubeGrid(): The lower coordinates " 229 "must be at the origin for YaspGrid.");
232 if (meshtype!=Dune::GeometryType::cube)
233 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
236 Dune::FieldVector<double,dimworld> L;
237 std::array<int,dimworld> N;
238 std::bitset<dimworld> B(
false);
241 L[i] = upper_right[i];
246 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
251 array<double,dimworld> lower_left, array<double,dimworld> upper_right,
252 array<unsigned int,dim> cells, array<bool,dim>
periodic,
int overlap=1)
256 if(std::abs(lower_left[d]) > std::abs(upper_right[d])*1
e-10)
257 DUNE_THROW(GridError, className<StructuredGrid>()
258 <<
"::createCubeGrid(): The lower coordinates " 259 "must be at the origin for YaspGrid.");
262 if (meshtype!=Dune::GeometryType::cube)
263 std::cout <<
"StructuredGrid(): element type " << meshtype <<
" is ignored" << std::endl;
266 Dune::FieldVector<double,dimworld> L;
267 std::array<int,dimworld> N;
268 std::bitset<dimworld> B(
false);
271 L[i] = upper_right[i];
277 gridp = std::shared_ptr<Grid>(
new Grid(L,N,B,overlap,Dune::MPIHelper::getCollectiveCommunication()));
305 return gridp.operator->();
315 return gridp.operator->();
319 std::shared_ptr<Grid> gridp;
330 static const int dim = T::dimension;
334 UnstructuredGrid (std::string filename,
bool verbose =
true,
bool insert_boundary_segments=
true)
336 Dune::GridFactory<T> factory;
337 Dune::GmshReader<T>::read(factory,filename,verbose,insert_boundary_segments);
338 gridp = std::shared_ptr<T>(factory.createGrid());
366 return gridp.operator->();
376 return gridp.operator->();
380 std::shared_ptr<T> gridp;
389 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim, Dune::GeometryType::BasicType gt>
393 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
401 femp = std::shared_ptr<FEM>(
new FEM(gridview));
405 const FEM&
getFEM()
const {
return *femp;}
408 std::shared_ptr<FEM> femp;
411 template<
typename GV,
typename C,
typename R,
unsigned int degree,
unsigned int dim>
419 femp = std::shared_ptr<FEM>(
new FEM(gridview));
423 const FEM&
getFEM()
const {
return *femp;}
426 std::shared_ptr<FEM> femp;
438 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>
442 template<
typename Gr
id,
typename BCType,
typename GV>
450 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
455 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
458 template<
typename GFS>
461 const CON&
getCON()
const {
return *conp;}
462 template<
typename GFS,
typename DOF>
465 std::shared_ptr<CON> conp;
468 template<
typename Gr
id,
typename BCType,
typename GV>
476 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
481 conp = std::shared_ptr<CON>(
new CON(grid,
true,bctype));
484 template<
typename GFS>
487 const CON&
getCON()
const {
return *conp;}
488 template<
typename GFS,
typename DOF>
491 std::shared_ptr<CON> conp;
494 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
502 conp = std::shared_ptr<CON>(
new CON());
507 conp = std::shared_ptr<CON>(
new CON());
510 template<
typename GFS>
513 const CON&
getCON()
const {
return *conp;}
514 template<
typename GFS,
typename DOF>
517 std::shared_ptr<CON> conp;
520 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
528 conp = std::shared_ptr<CON>(
new CON());
533 conp = std::shared_ptr<CON>(
new CON());
536 template<
typename GFS>
539 const CON&
getCON()
const {
return *conp;}
540 template<
typename GFS,
typename DOF>
547 if (gfs.gridView().comm().size()>1)
548 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
551 std::shared_ptr<CON> conp;
554 template<
typename Gr
id,
unsigned int degree, Dune::GeometryType::BasicType gt,
typename BCType,
typename GV>
561 conp = std::shared_ptr<CON>(
new CON);
564 template<
typename GFS>
567 template<
typename GFS,
typename DOF>
570 std::shared_ptr<CON> conp;
575 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
576 Dune::GeometryType::BasicType gt,
MeshType mt, SolverCategory::Category st = SolverCategory::sequential,
583 typedef typename T::LeafGridView
GV;
585 static const int dim = T::dimension;
591 typedef typename FEMB::FEM
FEM;
592 typedef typename CONB::CON
CON;
600 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
605 : gv(grid.leafGridView()), femb(gv), conb(grid,bctype)
607 gfsp = std::shared_ptr<GFS>(
new GFS(gv,femb.getFEM(),conb.getCON()));
608 gfsp->name(
"cgspace");
611 conb.postGFSHook(*gfsp);
612 ccp = std::shared_ptr<CC>(
new CC());
617 return femb.getFEM();
622 return femb.getFEM();
663 conb.make_consistent(*gfsp,x);
669 conb.make_consistent(*gfsp,x);
675 conb.make_consistent(*gfsp,xout);
681 conb.make_consistent(*gfsp,xout);
688 std::shared_ptr<GFS> gfsp;
689 std::shared_ptr<CC> ccp;
693 template<
typename T,
typename N,
unsigned int degree,
typename BCType,
694 Dune::GeometryType::BasicType gt,
MeshType mt,
696 class CGSpace<T, N, degree, BCType, gt, mt, SolverCategory::nonoverlapping, VBET> {
701 typedef typename T::LeafGridView
GV;
704 static const int dim = T::dimension;
710 typedef typename FEMB::FEM
FEM;
711 typedef typename CONB::CON
CON;
719 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
724 : gv(grid.leafGridView()), es(gv), femb(es), conb(grid,bctype)
726 gfsp = std::shared_ptr<GFS>(
new GFS(es,femb.getFEM(),conb.getCON()));
727 gfsp->name(
"cgspace");
731 ccp = std::shared_ptr<CC>(
new CC());
736 return femb.getFEM();
741 return femb.getFEM();
782 conb.make_consistent(*gfsp,x);
788 conb.make_consistent(*gfsp,x);
794 conb.make_consistent(*gfsp,xout);
800 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 LS * operator->()
Definition: pdelab.hh:1756
FEM & getFEM()
Definition: pdelab.hh:734
Dune::PDELab::NonOverlappingEntitySet< GV > ES
Definition: pdelab.hh:703
DGPkSpace(const GV &gridview)
Definition: pdelab.hh:913
DGCONBase()
Definition: pdelab.hh:845
void set_nonconstrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
Definition: constraints.hh:962
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: seqistlsolverbackend.hh:503
GridFunctionSpace< ES, FEM, CON, VBE > GFS
Definition: pdelab.hh:714
Overlapping parallel conjugate gradient solver preconditioned with AMG smoothed by SSOR...
Definition: ovlpistlsolverbackend.hh:1258
T Grid
Definition: pdelab.hh:700
T & getGrid()
Definition: pdelab.hh:156
T::LeafGridView GV
Definition: pdelab.hh:583
Definition: pdelab.hh:887
LS & getLS()
Definition: pdelab.hh:1828
GFS & getGFS()
Definition: pdelab.hh:745
Dune::PDELab::P0LocalFiniteElementMap< ctype, NT, dim > FEM
Definition: pdelab.hh:1384
GO * operator->()
Definition: pdelab.hh:1589
Definition: partitionviewentityset.hh:34
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:150
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1295
periodic boundary intersection (neighbor() == true && boundary() == true)
DGCONBase< st > CONB
Definition: pdelab.hh:1003
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1067
N NT
Definition: pdelab.hh:997
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:342
N NT
Definition: pdelab.hh:1288
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:797
Dune::PDELab::ISTLBackend_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1770
T::LeafGridView GV
Definition: pdelab.hh:1379
Grid::ctype ctype
Definition: pdelab.hh:200
const Entity & e
Definition: localfunctionspace.hh:111
static const int dim
Definition: pdelab.hh:93
CONB::CON CON
Definition: pdelab.hh:1099
Dune::PDELab::OneStepGridOperator< typename GO1::GO, typename GO2::GO, implicit > GO
Definition: pdelab.hh:1669
Dune::PDELab::Backend::Matrix< MB, Domain, Range, JF > Jacobian
The type of the jacobian.
Definition: gridoperator.hh:50
void clearConstraints()
Definition: pdelab.hh:774
DGCONBase< st > CONB
Definition: pdelab.hh:1290
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1246
const LS * operator->() const
Definition: pdelab.hh:1908
DGQkSpace(const GV &gridview)
Definition: pdelab.hh:1108
const LS * operator->() const
Definition: pdelab.hh:1783
DGCONBase< st > CONB
Definition: pdelab.hh:1194
CON & getCON()
Definition: pdelab.hh:460
const GFS & getGFS() const
Definition: pdelab.hh:1411
Definition: pdelab.hh:1716
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:485
const CON & getCON() const
Definition: pdelab.hh:461
LS & operator*()
Definition: pdelab.hh:1755
std::enable_if< std::is_base_of< impl::WrapperBase, T >::value, Native< T > &>::type native(T &t)
Definition: backend/interface.hh:192
T::ctype ctype
Definition: pdelab.hh:92
leaf of a function tree
Definition: function.hh:298
const LS * operator->() const
Definition: pdelab.hh:1858
T & operator*()
Definition: pdelab.hh:167
const LS & operator*() const
Definition: pdelab.hh:1732
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:505
const FEM & getFEM() const
Definition: pdelab.hh:923
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:720
Definition: pdelab.hh:1557
Definition: istl/descriptors.hh:50
const GO & getGO() const
Definition: pdelab.hh:1526
LS & getLS()
Definition: pdelab.hh:1753
GO & operator*()
Definition: pdelab.hh:1638
const FEM & getFEM() const
Definition: pdelab.hh:620
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1668
std::shared_ptr< Grid > getSharedPtr()
Definition: pdelab.hh:281
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:526
void copy_nonconstrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:989
const GO & operator*() const
Definition: pdelab.hh:1541
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:537
const GO & operator*() const
Definition: pdelab.hh:1699
CC & getCC()
Definition: pdelab.hh:1319
Definition: pdelab.hh:1373
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:678
LS & getLS()
Definition: pdelab.hh:1952
CON & getCON()
Definition: pdelab.hh:565
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1348
const LS & getLS() const
Definition: pdelab.hh:1978
LS & getLS()
Definition: pdelab.hh:1728
GO::Jacobian MAT
Definition: pdelab.hh:1512
Parallel P0 constraints for overlapping grids.
Definition: p0.hh:15
T::LeafGridView GV
Definition: pdelab.hh:701
CC & getCC()
Definition: pdelab.hh:757
VBET VBE
Definition: pdelab.hh:1100
const CC & getCC() const
Definition: pdelab.hh:1035
CC & getCC()
Definition: pdelab.hh:1223
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::CubeGridQ1Assembler, BCType > CON
Definition: pdelab.hh:472
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1392
const T * operator->() const
Definition: pdelab.hh:182
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1443
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:910
CGCONBase< Grid, degree, gt, mt, st, BCType > CONB
Definition: pdelab.hh:589
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1997
T::ctype ctype
Definition: pdelab.hh:1285
DGLegendreSpace(const GV &gridview)
Definition: pdelab.hh:1300
OverlappingConformingDirichletConstraints CON
Definition: pdelab.hh:524
LS & operator*()
Definition: pdelab.hh:1830
CC & getCC()
Definition: pdelab.hh:1127
void set_constrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
construct constraints from given boundary condition function
Definition: constraints.hh:798
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition: function.hh:49
GO::Jacobian MAT
Definition: pdelab.hh:1670
NoConstraints CON
Definition: pdelab.hh:827
GO & operator*()
Definition: pdelab.hh:1689
const LS * operator->() const
Definition: pdelab.hh:1808
const LS & operator*() const
Definition: pdelab.hh:1832
const GO & getGO() const
Definition: pdelab.hh:1633
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1391
P0ParallelConstraints CON
Definition: pdelab.hh:861
QkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:415
Dune::PDELab::ISTLBackend_SEQ_ExplicitDiagonal LS
Definition: pdelab.hh:1945
VBET VBE
Definition: pdelab.hh:713
void clearConstraints()
Definition: pdelab.hh:944
const LS & getLS() const
Definition: pdelab.hh:1729
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:666
Dune::PDELab::ISTLBackend_NOVLP_BCGS_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1896
FEM & getFEM()
Definition: pdelab.hh:615
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:906
YaspGrid< dim > Grid
Definition: pdelab.hh:199
N NT
Definition: pdelab.hh:897
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1615
const CC & getCC() const
Definition: pdelab.hh:763
LS * operator->()
Definition: pdelab.hh:1856
Definition: pdelab.hh:390
Definition: pdelab.hh:1664
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1133
ISTLBackend_OVLP_BCGS_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1920
GlobalAssembler(const FSU &fsu, const FSV &fsv, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1621
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:601
N NT
Definition: pdelab.hh:1096
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:604
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
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:515
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:489
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1049
VBET VBE
Definition: pdelab.hh:905
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1197
T::LeafGridView GV
Definition: pdelab.hh:1188
T Grid
Definition: pdelab.hh:582
Definition: gridoperator/onestep.hh:17
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1388
const FEM & getFEM() const
Definition: pdelab.hh:1310
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:474
const CC & getCC() const
Definition: pdelab.hh:1226
FEM & getFEM()
Definition: pdelab.hh:1117
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition: function.hh:118
Dune::PDELab::ISTLBackend_NOVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1995
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:417
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1258
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells, int overlap=1)
Definition: pdelab.hh:204
CC & getCC()
Definition: pdelab.hh:1032
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1294
T::LeafGridView GV
Definition: pdelab.hh:1284
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:649
const LS & operator*() const
Definition: pdelab.hh:1857
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:967
GO & getGO()
Definition: pdelab.hh:1520
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:399
T Grid
Definition: pdelab.hh:1187
typename impl::BackendVectorSelector< GridFunctionSpace, FieldType >::Type Vector
alias of the return type of BackendVectorSelector
Definition: backend/interface.hh:106
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:717
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:869
UserFunction(const FS &fs_, const Functor &f_)
constructor
Definition: pdelab.hh:1477
GFS & getGFS()
Definition: pdelab.hh:1121
const GO & operator*() const
Definition: pdelab.hh:1648
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::lobatto > FEM
Definition: pdelab.hh:1193
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
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::SimplexGridP1Assembler, BCType > CON
Definition: pdelab.hh:446
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:531
T Grid
Definition: pdelab.hh:328
CON & getCON()
Definition: pdelab.hh:512
T Grid
Definition: pdelab.hh:1378
const LS & getLS() const
Definition: pdelab.hh:2003
StructuredGrid(Dune::GeometryType::BasicType meshtype, array< double, dimworld > lower_left, array< double, dimworld > upper_right, array< unsigned int, dim > cells)
Definition: pdelab.hh:117
LS & getLS()
Definition: pdelab.hh:2002
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1008
GFS & getGFS()
Definition: pdelab.hh:1217
const GFS & getGFS() const
Definition: pdelab.hh:1316
void clearConstraints()
Definition: pdelab.hh:655
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:660
const Grid & operator*() const
Definition: pdelab.hh:308
T & operator*()
Definition: pdelab.hh:359
MeshType
Definition: pdelab.hh:432
GO & operator*()
Definition: pdelab.hh:1531
LS & getLS()
Definition: pdelab.hh:1778
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1105
LS * operator->()
Definition: pdelab.hh:1980
const LS & operator*() const
Definition: pdelab.hh:2006
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1156
LS & operator*()
Definition: pdelab.hh:1855
DGCONBase< st > CONB
Definition: pdelab.hh:1098
void clearConstraints()
Definition: pdelab.hh:1139
LS & operator*()
Definition: pdelab.hh:1905
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:908
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:463
Dune::PDELab::ISTLBackend_SEQ_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1720
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1103
LS & operator*()
Definition: pdelab.hh:1881
const FEM & getFEM() const
Definition: pdelab.hh:423
GO & getGO()
Definition: pdelab.hh:1627
OneStepGlobalAssembler(GO1 &go1, GO2 &go2)
Definition: pdelab.hh:1672
const LS & getLS() const
Definition: pdelab.hh:1880
LS & getLS()
Definition: pdelab.hh:1879
LS & operator*()
Definition: pdelab.hh:1979
static const int dimworld
Definition: pdelab.hh:94
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1325
const LS & operator*() const
Definition: pdelab.hh:1907
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1947
const FS::GV & getGridView() const
Definition: pdelab.hh:1492
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:500
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1293
Definition: pdelab.hh:1868
ISTLBackend_SEQ_CG_SSOR LS
Definition: pdelab.hh:1795
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1898
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:598
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1874
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells)
Definition: pdelab.hh:97
P0Space(const GV &gridview)
Definition: pdelab.hh:1395
const LS * operator->() const
Definition: pdelab.hh:1957
CGFEMBase< ES, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:707
LS * operator->()
Definition: pdelab.hh:1882
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:599
const LS * operator->() const
Definition: pdelab.hh:2007
LS * operator->()
Definition: pdelab.hh:1806
void clearConstraints()
Definition: pdelab.hh:1426
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:852
CON & getCON()
Definition: pdelab.hh:538
LS & getLS()
Definition: pdelab.hh:1903
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1010
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
GFS & getGFS()
Definition: pdelab.hh:1313
GO * operator->()
Definition: pdelab.hh:1643
LS & operator*()
Definition: pdelab.hh:1954
DGQkOPBSpace(const GV &gridview)
Definition: pdelab.hh:1013
CONB::CON CON
Definition: pdelab.hh:1386
CONB::CON CON
Definition: pdelab.hh:711
const LS & getLS() const
Definition: pdelab.hh:1953
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:909
CC & getCC()
Definition: pdelab.hh:932
DGCONBase< st > CONB
Definition: pdelab.hh:1385
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
CON & getCON()
Definition: pdelab.hh:832
FEM & getFEM()
Definition: pdelab.hh:1213
T * operator->()
Definition: pdelab.hh:364
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1101
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1252
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1354
const GO & getGO() const
Definition: pdelab.hh:1684
Dune::PDELab::ISTLBackend_NOVLP_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1745
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:907
const CON & getCON() const
Definition: pdelab.hh:833
UnstructuredGrid(std::string filename, bool verbose=true, bool insert_boundary_segments=true)
Definition: pdelab.hh:334
Definition: l2orthonormal.hh:257
GalerkinGlobalAssembler(const FS &fs, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1514
T Grid
Definition: pdelab.hh:1091
DGCONBase< st > CONB
Definition: pdelab.hh:903
ISTLBackend_OVLP_CG_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1845
const FEM & getFEM() const
Definition: pdelab.hh:1023
const LS * operator->() const
Definition: pdelab.hh:1733
T::ctype ctype
Definition: pdelab.hh:1093
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:949
const T & operator*() const
Definition: pdelab.hh:177
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1055
T::ctype ctype
Definition: pdelab.hh:994
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1061
CGCONBase< Grid, degree, gt, mt, SolverCategory::nonoverlapping, BCType > CONB
Definition: pdelab.hh:708
LS * operator->()
Definition: pdelab.hh:1781
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1104
N NT
Definition: pdelab.hh:716
CONB::CON CON
Definition: pdelab.hh:1195
const GO * operator->() const
Definition: pdelab.hh:1704
Standard grid operator implementation.
Definition: gridoperator.hh:38
const GFS & getGFS() const
Definition: pdelab.hh:1124
const FEM & getFEM() const
Definition: pdelab.hh:405
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:791
const LS & operator*() const
Definition: pdelab.hh:1757
DGCONBase()
Definition: pdelab.hh:862
const GO * operator->() const
Definition: pdelab.hh:1599
const GO * operator->() const
Definition: pdelab.hh:1546
QkDGLocalFiniteElementMap< ctype, NT, degree, dim > FEM
Definition: pdelab.hh:1097
Traits::Jacobian Jacobian
Definition: gridoperator/onestep.hh:56
VBET VBE
Definition: pdelab.hh:1292
FEM & getFEM()
Definition: pdelab.hh:422
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:719
T * operator->()
Definition: pdelab.hh:172
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1162
Definition: pdelab.hh:1791
Definition: pdelab.hh:1086
const LS & operator*() const
Definition: pdelab.hh:1931
const FEM & getFEM() const
Definition: pdelab.hh:1214
const GFS & getGFS() const
Definition: pdelab.hh:1029
GO & getGO()
Definition: pdelab.hh:1573
CON & getCON()
Definition: pdelab.hh:849
R RangeType
range type
Definition: function.hh:61
P0ParallelGhostConstraints CON
Definition: pdelab.hh:844
const LS * operator->() const
Definition: pdelab.hh:1833
const T & getGrid() const
Definition: pdelab.hh:162
CGFEMBase< GV, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:588
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:479
Grid * operator->()
Definition: pdelab.hh:303
T Grid
Definition: pdelab.hh:1283
LS & operator*()
Definition: pdelab.hh:2004
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1431
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:779
const FEM & getFEM() const
Definition: pdelab.hh:739
const LS * operator->() const
Definition: pdelab.hh:1884
N NT
Definition: pdelab.hh:1192
const GO & operator*() const
Definition: pdelab.hh:1594
ConformingDirichletConstraints CON
Definition: pdelab.hh:498
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1102
const GFS & getGFS() const
Definition: pdelab.hh:929
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1296
CONB::CON CON
Definition: pdelab.hh:1004
GO::Jacobian MAT
Definition: pdelab.hh:1565
FEM & getFEM()
Definition: pdelab.hh:1022
T Grid
Definition: pdelab.hh:91
GO::Jacobian MAT
Definition: pdelab.hh:1619
const CC & getCC() const
Definition: pdelab.hh:644
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:568
const LS & operator*() const
Definition: pdelab.hh:1782
GO * operator->()
Definition: pdelab.hh:1536
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1508
ISTLBackend_NOVLP_CG_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1820
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:600
const LS & getLS() const
Definition: pdelab.hh:1754
void clearConstraints()
Definition: pdelab.hh:1331
Nonoverlapping parallel CG solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:859
CC & getCC()
Definition: pdelab.hh:638
const CON & getCON() const
Definition: pdelab.hh:850
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1420
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1437
Definition: pdelab.hh:578
GridFunctionTraits< typename FS::GV, typename FS::NT, 1, FieldVector< typename FS::NT, 1 > > Traits
Definition: pdelab.hh:1474
const GFS & getGFS() const
Definition: pdelab.hh:1220
Backend using (possibly nested) ISTL BCRSMatrices.
Definition: bcrsmatrixbackend.hh:190
T::ctype ctype
Definition: pdelab.hh:702
const CC & getCC() const
Definition: pdelab.hh:1417
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::legendre > FEM
Definition: pdelab.hh:1289
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:938
Overlapping parallel CGS solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:727
VBET VBE
Definition: pdelab.hh:1387
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt, N, Dune::PB::BasisType::Qk > FEM
Definition: pdelab.hh:1001
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: novlpistlsolverbackend.hh:634
const LS & getLS() const
Definition: pdelab.hh:1779
Definition: pdelab.hh:1504
FEM & getFEM()
Definition: pdelab.hh:1309
extend conforming constraints class by processor boundary
Definition: conforming.hh:101
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1240
GalerkinGlobalAssemblerNewBackend(const FS &fs, LOP &lop, const MBE &mbe)
Definition: pdelab.hh:1567
const LS * operator->() const
Definition: pdelab.hh:1982
VBET VBE
Definition: pdelab.hh:1005
Overlapping parallel BiCGStab solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:661
GFS & getGFS()
Definition: pdelab.hh:1408
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:511
const T & getGrid() const
Definition: pdelab.hh:354
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
LS * operator->()
Definition: pdelab.hh:1831
Definition: pdelab.hh:439
const CC & getCC() const
Definition: pdelab.hh:1130
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1199
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1797
T::ctype ctype
Definition: pdelab.hh:329
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:541
const GFS & getGFS() const
Definition: pdelab.hh:751
wrap a GridFunction so it can be used with the VTKWriter from dune-grid.
Definition: vtkexport.hh:22
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:835
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1847
T::ctype ctype
Definition: pdelab.hh:1380
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:785
FEMB::FEM FEM
Definition: pdelab.hh:710
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
LS & operator*()
Definition: pdelab.hh:1730
const Grid * operator->() const
Definition: pdelab.hh:313
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:961
const FEM & getFEM() const
Definition: pdelab.hh:1118
CON & getCON()
Definition: pdelab.hh:486
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1201
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:723
GFS & getGFS()
Definition: pdelab.hh:1026
GO & getGO()
Definition: pdelab.hh:1678
VBET VBE
Definition: pdelab.hh:1196
LS & getLS()
Definition: pdelab.hh:1927
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:768
GO * operator->()
Definition: pdelab.hh:1694
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1449
Grid & getGrid()
Definition: pdelab.hh:287
Definition: pdelab.hh:433
LS & getLS()
Definition: pdelab.hh:1853
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1336
Definition: pdelab.hh:434
T Grid
Definition: pdelab.hh:892
void copy_constrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:938
void maskForeignDOFs(X &x) const
Mask out all DOFs not owned by the current process with 0.
Definition: parallelhelper.hh:115
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:220
Nonoverlapping parallel CG solver preconditioned with AMG smoothed by SSOR.
Definition: novlpistlsolverbackend.hh:1072
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:453
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:459
Hanging Node constraints construction.
Definition: hangingnode.hh:318
Definition: pdelab.hh:820
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1150
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:250
const LS & getLS() const
Definition: pdelab.hh:1854
GO & operator*()
Definition: pdelab.hh:1584
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1038
LS & operator*()
Definition: pdelab.hh:1805
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1009
Nonoverlapping parallel BiCGSTAB solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:834
const GO * operator->() const
Definition: pdelab.hh:1653
const LS & getLS() const
Definition: pdelab.hh:1904
Dune::PDELab::ISTLBackend_OVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1970
const LS & getLS() const
Definition: pdelab.hh:1928
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
Backend for sequential BiCGSTAB solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:261
FEM & getFEM()
Definition: pdelab.hh:404
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:448
void clearConstraints()
Definition: pdelab.hh:1235
const LS & getLS() const
Definition: pdelab.hh:1829
const LS & operator*() const
Definition: pdelab.hh:1956
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1342
Dirichlet Constraints construction.
Definition: conforming.hh:36
T & getGrid()
Definition: pdelab.hh:348
N NT
Definition: pdelab.hh:597
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:955
LS & getLS()
Definition: pdelab.hh:1803
FEMB::FEM FEM
Definition: pdelab.hh:591
T::LeafGridView GV
Definition: pdelab.hh:993
T::ctype ctype
Definition: pdelab.hh:1189
CON & getCON()
Definition: pdelab.hh:866
Definition: l2orthonormal.hh:257
CONB::CON CON
Definition: pdelab.hh:592
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1198
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1200
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
const LS * operator->() const
Definition: pdelab.hh:1932
T::ctype ctype
Definition: pdelab.hh:584
const GO & getGO() const
Definition: pdelab.hh:1579
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1144
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1390
N NT
Definition: pdelab.hh:1383
Definition: pdelab.hh:1278
void constraints(const GFS &gfs, CG &cg, const bool verbose=false)
construct constraints
Definition: constraints.hh:751
CC & getCC()
Definition: pdelab.hh:1414
const CON & getCON() const
Definition: pdelab.hh:566
GFS & getGFS()
Definition: pdelab.hh:626
LS * operator->()
Definition: pdelab.hh:2005
DGQkGLSpace(const GV &gridview)
Definition: pdelab.hh:1204
const Grid & getGrid() const
Definition: pdelab.hh:293
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:672
Definition: noconstraints.hh:16
LS * operator->()
Definition: pdelab.hh:1731
Definition: pdelab.hh:987
LS & getLS()
Definition: pdelab.hh:1977
const CON & getCON() const
Definition: pdelab.hh:513
LS * operator->()
Definition: pdelab.hh:1906
void clearConstraints()
Definition: pdelab.hh:1044
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: ovlpistlsolverbackend.hh:1010
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1389
T Grid
Definition: pdelab.hh:992
const CON & getCON() const
Definition: pdelab.hh:867
LS & operator*()
Definition: pdelab.hh:1929
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1006
Definition: genericdatahandle.hh:622
const CON & getCON() const
Definition: pdelab.hh:539
T::ctype ctype
Definition: pdelab.hh:894
Backend for sequential conjugate gradient solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:348
const LS & operator*() const
Definition: pdelab.hh:1883
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1297
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1229
const CON & getCON() const
Definition: pdelab.hh:487
LS * operator->()
Definition: pdelab.hh:1930
Grid & operator*()
Definition: pdelab.hh:298
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt > FEM
Definition: pdelab.hh:901
const FEM & getFEM() const
Definition: pdelab.hh:1405
Definition: pdelab.hh:1941
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1922
GFS & getGFS()
Definition: pdelab.hh:926
const T * operator->() const
Definition: pdelab.hh:374
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:559
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:595
convert a grid function space and a coefficient vector into a grid function
Definition: gridfunctionspaceutilities.hh:53
const T & operator*() const
Definition: pdelab.hh:369
DGCONBase()
Definition: pdelab.hh:828
VBET VBE
Definition: pdelab.hh:594
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1972
FEM & getFEM()
Definition: pdelab.hh:922
Definition: pdelab.hh:324
PkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:397
Definition: pdelab.hh:1611
LS & operator*()
Definition: pdelab.hh:1780
ISTLBackend_SEQ_BCGS_SSOR LS
Definition: pdelab.hh:1872
A grid function space.
Definition: gridfunctionspace.hh:169
CONB::CON CON
Definition: pdelab.hh:1291
const LS & operator*() const
Definition: pdelab.hh:1981
FEM & getFEM()
Definition: pdelab.hh:1404
const LS & getLS() const
Definition: pdelab.hh:1804
const GFS & getGFS() const
Definition: pdelab.hh:632
CONB::CON CON
Definition: pdelab.hh:904
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1007
Definition: pdelab.hh:1467
T::LeafGridView GV
Definition: pdelab.hh:893
const LS * operator->() const
Definition: pdelab.hh:1758
T::LeafGridView GV
Definition: pdelab.hh:1092
Sequential conjugate gradient solver preconditioned with AMG smoothed by SSOR.
Definition: seqistlsolverbackend.hh:698
traits class holding the function signature, same as in local function
Definition: function.hh:176
Dune::PDELab::ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1561
LS * operator->()
Definition: pdelab.hh:1955
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:718
Definition: parallelhelper.hh:53
const CC & getCC() const
Definition: pdelab.hh:1322
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1822
Parallel P0 constraints for nonoverlapping grids with ghosts.
Definition: p0ghost.hh:16
const CC & getCC() const
Definition: pdelab.hh:935
const LS & operator*() const
Definition: pdelab.hh:1807
Definition: pdelab.hh:1182