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()), es(gv), femb(es), conb(grid,bctype)
727 gfsp = std::shared_ptr<GFS>(
new GFS(es,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);
809 std::shared_ptr<GFS> gfsp;
810 std::shared_ptr<CC> ccp;
820 template<SolverCategory::Category st>
831 conp = std::shared_ptr<CON>(
new CON());
834 const CON&
getCON()
const {
return *conp;}
835 template<
typename GFS,
typename DOF>
838 std::shared_ptr<CON> conp;
848 conp = std::shared_ptr<CON>(
new CON());
851 const CON&
getCON()
const {
return *conp;}
852 template<
typename GFS,
typename DOF>
855 std::shared_ptr<CON> conp;
865 conp = std::shared_ptr<CON>(
new CON());
868 const CON&
getCON()
const {
return *conp;}
869 template<
typename GFS,
typename DOF>
876 if (gfs.gridView().comm().size()>1)
877 gfs.gridView().communicate(adddh,Dune::InteriorBorder_All_Interface,Dune::ForwardCommunication);
880 std::shared_ptr<CON> conp;
885 template<
typename T,
typename N,
unsigned int degree,
886 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
894 typedef typename T::LeafGridView
GV;
896 static const int dim = T::dimension;
905 typedef typename CONB::CON
CON;
910 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
916 femp = std::shared_ptr<FEM>(
new FEM());
917 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
920 ccp = std::shared_ptr<CC>(
new CC());
924 const FEM&
getFEM()
const {
return *femp; }
930 const GFS&
getGFS ()
const {
return *gfsp;}
936 const CC&
getCC ()
const {
return *ccp;}
938 template<
class BCTYPE>
953 conb.make_consistent(*gfsp,x);
959 conb.make_consistent(*gfsp,x);
965 conb.make_consistent(*gfsp,xout);
971 conb.make_consistent(*gfsp,xout);
977 std::shared_ptr<FEM> femp;
978 std::shared_ptr<GFS> gfsp;
979 std::shared_ptr<CC> ccp;
984 template<
typename T,
typename N,
unsigned int degree,
985 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
994 typedef typename T::LeafGridView
GV;
996 static const int dim = T::dimension;
1005 typedef typename CONB::CON
CON;
1010 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1016 femp = std::shared_ptr<FEM>(
new FEM());
1017 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1020 ccp = std::shared_ptr<CC>(
new CC());
1036 const CC&
getCC ()
const {
return *ccp;}
1038 template<
class BCTYPE>
1053 conb.make_consistent(*gfsp,x);
1059 conb.make_consistent(*gfsp,x);
1065 conb.make_consistent(*gfsp,xout);
1071 conb.make_consistent(*gfsp,xout);
1077 std::shared_ptr<FEM> femp;
1078 std::shared_ptr<GFS> gfsp;
1079 std::shared_ptr<CC> ccp;
1084 template<
typename T,
typename N,
unsigned int degree,
1085 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1093 typedef typename T::LeafGridView
GV;
1095 static const int dim = T::dimension;
1098 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim>
FEM;
1100 typedef typename CONB::CON
CON;
1105 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1111 femp = std::shared_ptr<FEM>(
new FEM());
1112 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1115 ccp = std::shared_ptr<CC>(
new CC());
1131 const CC&
getCC ()
const {
return *ccp;}
1133 template<
class BCTYPE>
1148 conb.make_consistent(*gfsp,x);
1154 conb.make_consistent(*gfsp,x);
1160 conb.make_consistent(*gfsp,xout);
1166 conb.make_consistent(*gfsp,xout);
1172 std::shared_ptr<FEM> femp;
1173 std::shared_ptr<GFS> gfsp;
1174 std::shared_ptr<CC> ccp;
1179 template<
typename T,
typename N,
unsigned int degree,
1180 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1189 typedef typename T::LeafGridView
GV;
1191 static const int dim = T::dimension;
1194 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim,QkDGBasisPolynomial::lobatto>
FEM;
1196 typedef typename CONB::CON
CON;
1201 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1207 femp = std::shared_ptr<FEM>(
new FEM());
1208 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1211 ccp = std::shared_ptr<CC>(
new CC());
1227 const CC&
getCC ()
const {
return *ccp;}
1229 template<
class BCTYPE>
1244 conb.make_consistent(*gfsp,x);
1250 conb.make_consistent(*gfsp,x);
1256 conb.make_consistent(*gfsp,xout);
1262 conb.make_consistent(*gfsp,xout);
1268 std::shared_ptr<FEM> femp;
1269 std::shared_ptr<GFS> gfsp;
1270 std::shared_ptr<CC> ccp;
1275 template<
typename T,
typename N,
unsigned int degree,
1276 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1285 typedef typename T::LeafGridView
GV;
1287 static const int dim = T::dimension;
1290 typedef QkDGLocalFiniteElementMap<ctype,NT,degree,dim,QkDGBasisPolynomial::legendre>
FEM;
1292 typedef typename CONB::CON
CON;
1297 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1303 femp = std::shared_ptr<FEM>(
new FEM());
1304 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1307 ccp = std::shared_ptr<CC>(
new CC());
1323 const CC&
getCC ()
const {
return *ccp;}
1325 template<
class BCTYPE>
1340 conb.make_consistent(*gfsp,x);
1346 conb.make_consistent(*gfsp,x);
1352 conb.make_consistent(*gfsp,xout);
1358 conb.make_consistent(*gfsp,xout);
1364 std::shared_ptr<FEM> femp;
1365 std::shared_ptr<GFS> gfsp;
1366 std::shared_ptr<CC> ccp;
1371 template<
typename T,
typename N,
1372 Dune::GeometryType::BasicType gt, SolverCategory::Category st = SolverCategory::sequential,
1380 typedef typename T::LeafGridView
GV;
1382 static const int dim = T::dimension;
1387 typedef typename CONB::CON
CON;
1392 typedef typename GFS::template ConstraintsContainer<N>::Type
CC;
1396 P0Space (
const GV& gridview) : gv(gridview), conb()
1398 femp = std::shared_ptr<FEM>(
new FEM(Dune::GeometryType(gt,dim)));
1399 gfsp = std::shared_ptr<GFS>(
new GFS(gv,*femp));
1402 ccp = std::shared_ptr<CC>(
new CC());
1418 const CC&
getCC ()
const {
return *ccp;}
1420 template<
class BCTYPE>
1435 conb.make_consistent(*gfsp,x);
1441 conb.make_consistent(*gfsp,x);
1447 conb.make_consistent(*gfsp,xout);
1453 conb.make_consistent(*gfsp,xout);
1459 std::shared_ptr<FEM> femp;
1460 std::shared_ptr<GFS> gfsp;
1461 std::shared_ptr<CC> ccp;
1467 template<
typename FS,
typename Functor>
1469 :
public GridFunctionBase<GridFunctionTraits<typename FS::GV, typename FS::NT,
1470 1,FieldVector<typename FS::NT,1> >
1471 ,UserFunction<FS,Functor> >
1488 std::vector<double> x__(x.size());
1489 for (
size_t i=0; i<x.size(); ++i) x__[i]=x_[i];
1495 return fs.getGFS().gridView();
1504 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1511 typename FS::NT,
typename FS::NT,
typename FS::NT,
1512 typename FS::CC,
typename FS::CC>
GO;
1517 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,MBE(nonzeros)));
1539 return gop.operator->();
1549 return gop.operator->();
1553 std::shared_ptr<GO> gop;
1557 template<
typename FS,
typename LOP, SolverCategory::Category st = SolverCategory::sequential>
1564 typename FS::NT,
typename FS::NT,
typename FS::NT,
1565 typename FS::CC,
typename FS::CC>
GO;
1570 gop = std::shared_ptr<GO>(
new GO(fs.getGFS(),fs.getCC(),fs.getGFS(),fs.getCC(),lop,mbe));
1592 return gop.operator->();
1602 return gop.operator->();
1606 std::shared_ptr<GO> gop;
1611 template<
typename FSU,
typename FSV,
typename LOP, SolverCategory::Category st>
1618 typename FSU::NT,
typename FSU::NT,
typename FSU::NT,
1619 typename FSU::CC,
typename FSV::CC>
GO;
1624 gop = std::shared_ptr<GO>(
new GO(fsu.getGFS(),fsu.getCC(),fsv.getGFS(),fsv.getCC(),lop,MBE(nonzeros)));
1646 return gop.operator->();
1656 return gop.operator->();
1660 std::shared_ptr<GO> gop;
1664 template<
typename GO1,
typename GO2,
bool implicit = true>
1675 gop = std::shared_ptr<GO>(
new GO(*go1,*go2));
1697 return gop.operator->();
1707 return gop.operator->();
1711 std::shared_ptr<GO> gop;
1716 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1724 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1726 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_,reuse_,usesuperlu_));
1730 const LS&
getLS ()
const {
return *lsp;}
1737 std::shared_ptr<LS> lsp;
1741 template<
typename FS,
typename ASS>
1749 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1751 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1755 const LS&
getLS ()
const {
return *lsp;}
1762 std::shared_ptr<LS> lsp;
1766 template<
typename FS,
typename ASS>
1774 int verbose_=1,
bool reuse_=
false,
bool usesuperlu_=
true)
1776 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,verbose_,reuse_,usesuperlu_));
1780 const LS&
getLS ()
const {
return *lsp;}
1787 std::shared_ptr<LS> lsp;
1791 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1799 int steps_=5,
int verbose_=1)
1801 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1805 const LS&
getLS ()
const {
return *lsp;}
1812 std::shared_ptr<LS> lsp;
1816 template<
typename FS,
typename ASS>
1824 int steps_=5,
int verbose_=1)
1826 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),maxiter_,steps_,verbose_));
1830 const LS&
getLS ()
const {
return *lsp;}
1837 std::shared_ptr<LS> lsp;
1841 template<
typename FS,
typename ASS>
1849 int steps_=5,
int verbose_=1)
1851 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,steps_,verbose_));
1855 const LS&
getLS ()
const {
return *lsp;}
1862 std::shared_ptr<LS> lsp;
1868 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1877 lsp = std::shared_ptr<LS>(
new LS(maxiter_,verbose_));
1881 const LS&
getLS ()
const {
return *lsp;}
1888 std::shared_ptr<LS> lsp;
1892 template<
typename FS,
typename ASS>
1901 lsp = std::shared_ptr<LS>(
new LS(ass.getGO(),maxiter_,3,verbose_));
1905 const LS&
getLS ()
const {
return *lsp;}
1912 std::shared_ptr<LS> lsp;
1916 template<
typename FS,
typename ASS>
1925 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS(),fs.getCC(),maxiter_,3,verbose_));
1929 const LS&
getLS ()
const {
return *lsp;}
1936 std::shared_ptr<LS> lsp;
1941 template<
typename FS,
typename ASS, SolverCategory::Category st = SolverCategory::sequential>
1950 lsp = std::shared_ptr<LS>(
new LS());
1954 const LS&
getLS ()
const {
return *lsp;}
1961 std::shared_ptr<LS> lsp;
1966 template<
typename FS,
typename ASS>
1975 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
1979 const LS&
getLS ()
const {
return *lsp;}
1986 std::shared_ptr<LS> lsp;
1991 template<
typename FS,
typename ASS>
2000 lsp = std::shared_ptr<LS>(
new LS(fs.getGFS()));
2004 const LS&
getLS ()
const {
return *lsp;}
2011 std::shared_ptr<LS> lsp;
2018 #endif // DUNE_PDELAB_BOILERPLATE_PDELAB_HH void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1056
LS & getLS()
Definition: pdelab.hh:1729
void maskForeignDOFs(X &x) const
Mask out all DOFs not owned by the current process with 0.
Definition: parallelhelper.hh:115
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::CubeGridQ1Assembler, BCType > CON
Definition: pdelab.hh:473
extend conforming constraints class by processor boundary
Definition: conforming.hh:101
const LS & operator*() const
Definition: pdelab.hh:1808
void clearConstraints()
Definition: pdelab.hh:1332
T::LeafGridView GV
Definition: pdelab.hh:1380
periodic boundary intersection (neighbor() == true && boundary() == true)
T & getGrid()
Definition: pdelab.hh:157
const Grid & operator*() const
Definition: pdelab.hh:309
N NT
Definition: pdelab.hh:898
const LS & getLS() const
Definition: pdelab.hh:1830
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1163
const LS & getLS() const
Definition: pdelab.hh:1979
CON & getCON()
Definition: pdelab.hh:487
const FS::GV & getGridView() const
Definition: pdelab.hh:1493
LS & getLS()
Definition: pdelab.hh:1754
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1259
N NT
Definition: pdelab.hh:1097
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:786
GO * operator->()
Definition: pdelab.hh:1644
const FEM & getFEM() const
Definition: pdelab.hh:1024
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1998
CON & getCON()
Definition: pdelab.hh:867
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1230
FEM & getFEM()
Definition: pdelab.hh:616
Dune::PDELab::ISTLBackend_NOVLP_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1746
T & getGrid()
Definition: pdelab.hh:349
LS * operator->()
Definition: pdelab.hh:1931
T::LeafGridView GV
Definition: pdelab.hh:584
FEM & getFEM()
Definition: pdelab.hh:1310
const LS & operator*() const
Definition: pdelab.hh:1982
const FEM & getFEM() const
Definition: pdelab.hh:621
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1848
DGCONBase< st > CONB
Definition: pdelab.hh:1386
void clearConstraints()
Definition: pdelab.hh:656
T Grid
Definition: pdelab.hh:329
Nonoverlapping parallel CG solver preconditioned with AMG smoothed by SSOR.
Definition: novlpistlsolverbackend.hh:1045
QkDGLocalFiniteElementMap< ctype, NT, degree, dim > FEM
Definition: pdelab.hh:1098
LS & getLS()
Definition: pdelab.hh:1978
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1201
Dune::PDELab::ISTLBackend_NOVLP_BCGS_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1897
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:343
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1062
typename impl::BackendVectorSelector< GridFunctionSpace, FieldType >::Type Vector
alias of the return type of BackendVectorSelector
Definition: backend/interface.hh:106
Definition: pdelab.hh:821
Dune::PDELab::OneStepGridOperator< typename GO1::GO, typename GO2::GO, implicit > GO
Definition: pdelab.hh:1670
const FEM & getFEM() const
Definition: pdelab.hh:1311
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1438
GFS & getGFS()
Definition: pdelab.hh:1218
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:908
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1241
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:962
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1295
void clearConstraints()
Definition: pdelab.hh:1140
const LS * operator->() const
Definition: pdelab.hh:1909
LS & getLS()
Definition: pdelab.hh:1953
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:516
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:720
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1151
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:1512
GFS & getGFS()
Definition: pdelab.hh:627
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:501
LS & operator*()
Definition: pdelab.hh:1731
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:853
const LS * operator->() const
Definition: pdelab.hh:2008
CONB::CON CON
Definition: pdelab.hh:1196
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1923
const FEM & getFEM() const
Definition: pdelab.hh:406
const GFS & getGFS() const
Definition: pdelab.hh:1030
const LS & operator*() const
Definition: pdelab.hh:1833
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition: function.hh:48
GO::Jacobian MAT
Definition: pdelab.hh:1671
CONB::CON CON
Definition: pdelab.hh:1292
const LS * operator->() const
Definition: pdelab.hh:1784
FEM & getFEM()
Definition: pdelab.hh:1118
Definition: gridoperator/onestep.hh:16
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:506
FEM & getFEM()
Definition: pdelab.hh:423
T Grid
Definition: pdelab.hh:1188
LS & getLS()
Definition: pdelab.hh:1854
OverlappingConformingDirichletConstraints CON
Definition: pdelab.hh:525
T::LeafGridView GV
Definition: pdelab.hh:1093
const T & operator*() const
Definition: pdelab.hh:370
Definition: pdelab.hh:988
FEM & getFEM()
Definition: pdelab.hh:1405
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1007
DGQkGLSpace(const GV &gridview)
Definition: pdelab.hh:1205
DGCONBase()
Definition: pdelab.hh:829
Dune::PDELab::ISTLBackend_OVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1971
const LS & getLS() const
Definition: pdelab.hh:1805
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: ovlpistlsolverbackend.hh:1010
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1444
GO & getGO()
Definition: pdelab.hh:1521
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:596
const GFS & getGFS() const
Definition: pdelab.hh:930
Definition: l2orthonormal.hh:257
const GO & operator*() const
Definition: pdelab.hh:1542
LS * operator->()
Definition: pdelab.hh:1857
CGCONBase< Grid, degree, gt, mt, SolverCategory::nonoverlapping, BCType > CONB
Definition: pdelab.hh:709
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1899
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:1773
const GFS & getGFS() const
Definition: pdelab.hh:752
GO::Jacobian MAT
Definition: pdelab.hh:1566
T::LeafGridView GV
Definition: pdelab.hh:702
const GO & getGO() const
Definition: pdelab.hh:1634
LS & operator*()
Definition: pdelab.hh:1882
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1294
void clearConstraints()
Definition: pdelab.hh:1236
GO & operator*()
Definition: pdelab.hh:1532
NoConstraints CON
Definition: pdelab.hh:828
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:1748
const CON & getCON() const
Definition: pdelab.hh:488
LS * operator->()
Definition: pdelab.hh:1807
std::shared_ptr< T > getSharedPtr()
Definition: pdelab.hh:151
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1039
const GO * operator->() const
Definition: pdelab.hh:1600
const LS & getLS() const
Definition: pdelab.hh:1755
const T * operator->() const
Definition: pdelab.hh:183
const LS & getLS() const
Definition: pdelab.hh:1855
LS & getLS()
Definition: pdelab.hh:1829
LS & getLS()
Definition: pdelab.hh:1880
DGCONBase< st > CONB
Definition: pdelab.hh:1291
Definition: istl/descriptors.hh:50
VBET VBE
Definition: pdelab.hh:1388
GO * operator->()
Definition: pdelab.hh:1590
const LS * operator->() const
Definition: pdelab.hh:1834
const LS * operator->() const
Definition: pdelab.hh:1933
LS & getLS()
Definition: pdelab.hh:2003
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:532
LS & operator*()
Definition: pdelab.hh:2005
const FEM & getFEM() const
Definition: pdelab.hh:924
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:454
CONB::CON CON
Definition: pdelab.hh:1005
Definition: pdelab.hh:1468
CC & getCC()
Definition: pdelab.hh:1224
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:490
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:939
const GFS & getGFS() const
Definition: pdelab.hh:1125
const GFS & getGFS() const
Definition: pdelab.hh:1412
Sequential conjugate gradient solver preconditioned with AMG smoothed by SSOR.
Definition: seqistlsolverbackend.hh:686
Dune::PDELab::NonOverlappingEntitySet< GV > ES
Definition: pdelab.hh:704
traits class holding the function signature, same as in local function
Definition: function.hh:175
Definition: parallelhelper.hh:53
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:968
Parallel P0 constraints for nonoverlapping grids with ghosts.
Definition: p0ghost.hh:16
LS & operator*()
Definition: pdelab.hh:1955
LS * operator->()
Definition: pdelab.hh:1732
Definition: pdelab.hh:1183
Dune::PDELab::ISTLBackend_NOVLP_ExplicitDiagonal< typename FS::GFS > LS
Definition: pdelab.hh:1996
const LS & operator*() const
Definition: pdelab.hh:2007
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1200
T & operator*()
Definition: pdelab.hh:360
T::ctype ctype
Definition: pdelab.hh:895
CC & getCC()
Definition: pdelab.hh:1033
CONB::CON CON
Definition: pdelab.hh:593
VBET VBE
Definition: pdelab.hh:1101
const Grid * operator->() const
Definition: pdelab.hh:314
const FEM & getFEM() const
Definition: pdelab.hh:1406
ISTLSolverBackend_IterativeDefault(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1875
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:909
std::shared_ptr< Grid > getSharedPtr()
Definition: pdelab.hh:282
Grid & operator*()
Definition: pdelab.hh:299
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:599
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1253
OneStepGlobalAssembler(GO1 &go1, GO2 &go2)
Definition: pdelab.hh:1673
LS & operator*()
Definition: pdelab.hh:1781
const FEM & getFEM() const
Definition: pdelab.hh:1215
const LS & getLS() const
Definition: pdelab.hh:1905
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:1565
T * operator->()
Definition: pdelab.hh:173
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1450
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1298
P0ParallelGhostConstraints CON
Definition: pdelab.hh:845
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
T Grid
Definition: pdelab.hh:92
Definition: pdelab.hh:1717
HangingNodesDirichletConstraints< Grid, HangingNodesConstraintsAssemblers::SimplexGridP1Assembler, BCType > CON
Definition: pdelab.hh:447
ISTLBackend_SEQ_CG_SSOR LS
Definition: pdelab.hh:1796
StructuredGrid(Dune::GeometryType::BasicType meshtype, array< double, dimworld > lower_left, array< double, dimworld > upper_right, array< unsigned int, dim > cells)
Definition: pdelab.hh:118
GO & operator*()
Definition: pdelab.hh:1585
MeshType
Definition: pdelab.hh:433
DGCONBase< st > CONB
Definition: pdelab.hh:1195
const GO * operator->() const
Definition: pdelab.hh:1654
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1509
const CON & getCON() const
Definition: pdelab.hh:462
T Grid
Definition: pdelab.hh:583
const CC & getCC() const
Definition: pdelab.hh:645
Definition: pdelab.hh:1558
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1392
DGPkSpace(const GV &gridview)
Definition: pdelab.hh:914
Definition: genericdatahandle.hh:622
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:956
FEM & getFEM()
Definition: pdelab.hh:405
GO::Jacobian MAT
Definition: pdelab.hh:1513
T::LeafGridView GV
Definition: pdelab.hh:894
LS & operator*()
Definition: pdelab.hh:1906
VBET VBE
Definition: pdelab.hh:1293
void set_nonconstrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
Definition: constraints.hh:962
CONB::CON CON
Definition: pdelab.hh:1100
const LS & operator*() const
Definition: pdelab.hh:1884
GO & getGO()
Definition: pdelab.hh:1628
T & operator*()
Definition: pdelab.hh:168
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1102
convert a grid function space and a coefficient vector into a grid function
Definition: gridfunctionspaceutilities.hh:53
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:400
DGCONBase< st > CONB
Definition: pdelab.hh:1099
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:721
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1391
Standard grid operator implementation.
Definition: gridoperator.hh:57
const GFS & getGFS() const
Definition: pdelab.hh:1221
LS & operator*()
Definition: pdelab.hh:1806
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1106
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: novlpistlsolverbackend.hh:633
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1343
const GO & getGO() const
Definition: pdelab.hh:1685
Dune::PDELab::ISTLBackend_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1771
P0Space(const GV &gridview)
Definition: pdelab.hh:1396
Overlapping parallel CGS solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:727
DGQkOPBSpace(const GV &gridview)
Definition: pdelab.hh:1014
Solver to be used for explicit time-steppers with (block-)diagonal mass matrix.
Definition: seqistlsolverbackend.hh:503
VBET VBE
Definition: pdelab.hh:1006
Overlapping parallel conjugate gradient solver preconditioned with AMG smoothed by SSOR...
Definition: ovlpistlsolverbackend.hh:1258
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:480
CC & getCC()
Definition: pdelab.hh:1415
GFS & getGFS()
Definition: pdelab.hh:1122
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1198
CGCONBase< Grid, degree, gt, mt, st, BCType > CONB
Definition: pdelab.hh:590
Definition: pdelab.hh:888
CC & getCC()
Definition: pdelab.hh:1128
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:661
VBET VBE
Definition: pdelab.hh:595
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:602
Overlapping parallel BiCGStab solver with SSOR preconditioner.
Definition: ovlpistlsolverbackend.hh:661
Definition: partitionviewentityset.hh:34
LS * operator->()
Definition: pdelab.hh:1981
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1798
Definition: pdelab.hh:440
LS & operator*()
Definition: pdelab.hh:1930
wrap a GridFunction so it can be used with the VTKWriter from dune-grid.
Definition: vtkexport.hh:22
const GFS & getGFS() const
Definition: pdelab.hh:1317
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:1723
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells, int overlap=1)
Definition: pdelab.hh:205
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt, N, Dune::PB::BasisType::Qk > FEM
Definition: pdelab.hh:1002
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:464
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::legendre > FEM
Definition: pdelab.hh:1290
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1202
T * operator->()
Definition: pdelab.hh:365
GO & operator*()
Definition: pdelab.hh:1639
LS * operator->()
Definition: pdelab.hh:1907
DGLegendreSpace(const GV &gridview)
Definition: pdelab.hh:1301
T::ctype ctype
Definition: pdelab.hh:1381
LS * operator->()
Definition: pdelab.hh:1883
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:950
const Entity & e
Definition: localfunctionspace.hh:111
Grid & getGrid()
Definition: pdelab.hh:288
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1669
const GO & operator*() const
Definition: pdelab.hh:1649
N NT
Definition: pdelab.hh:598
Dune::PDELab::Backend::Matrix< MB, Domain, Range, JF > Jacobian
The type of the jacobian.
Definition: gridoperator.hh:75
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
Dune::PDELab::ISTLBackend_SEQ_ExplicitDiagonal LS
Definition: pdelab.hh:1946
GO * operator->()
Definition: pdelab.hh:1695
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1008
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:1483
GridFunctionSpace< ES, FEM, CON, VBE > GFS
Definition: pdelab.hh:715
const CC & getCC() const
Definition: pdelab.hh:1036
LS * operator->()
Definition: pdelab.hh:1832
const CC & getCC() const
Definition: pdelab.hh:764
FEM & getFEM()
Definition: pdelab.hh:923
const Grid & getGrid() const
Definition: pdelab.hh:294
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:907
Definition: l2orthonormal.hh:257
T::LeafGridView GV
Definition: pdelab.hh:994
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
CON & getCON()
Definition: pdelab.hh:461
Nonoverlapping parallel BiCGSTAB solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:825
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1349
QkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:416
Definition: pdelab.hh:1374
FEMB::FEM FEM
Definition: pdelab.hh:592
Traits::Jacobian Jacobian
Definition: gridoperator/onestep.hh:55
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:650
const GO * operator->() const
Definition: pdelab.hh:1705
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1145
CGCONBase(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:560
ConformingDirichletConstraints CON
Definition: pdelab.hh:499
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1393
void clearConstraints()
Definition: pdelab.hh:945
Parallel P0 constraints for overlapping grids.
Definition: p0.hh:15
Definition: pdelab.hh:1087
const CON & getCON() const
Definition: pdelab.hh:514
CON & getCON()
Definition: pdelab.hh:566
const FEM & getFEM() const
Definition: pdelab.hh:424
T::ctype ctype
Definition: pdelab.hh:585
N NT
Definition: pdelab.hh:1289
T::ctype ctype
Definition: pdelab.hh:1190
A grid function space.
Definition: gridfunctionspace.hh:169
void clearConstraints()
Definition: pdelab.hh:1045
GO & operator*()
Definition: pdelab.hh:1690
static const int dim
Definition: pdelab.hh:94
Dirichlet Constraints construction.
Definition: conforming.hh:36
GO::Jacobian MAT
Definition: pdelab.hh:1620
const LS & operator*() const
Definition: pdelab.hh:1932
DGQkSpace(const GV &gridview)
Definition: pdelab.hh:1109
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1199
QkDGLocalFiniteElementMap< ctype, NT, degree, dim, QkDGBasisPolynomial::lobatto > FEM
Definition: pdelab.hh:1194
const LS & getLS() const
Definition: pdelab.hh:1881
const LS & getLS() const
Definition: pdelab.hh:1730
CC & getCC()
Definition: pdelab.hh:639
const CC & getCC() const
Definition: pdelab.hh:1323
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:1619
LS * operator->()
Definition: pdelab.hh:1757
Hanging Node constraints construction.
Definition: hangingnode.hh:318
ISTLBackend_OVLP_CG_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1846
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1421
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:718
const LS * operator->() const
Definition: pdelab.hh:1734
T::LeafGridView GV
Definition: pdelab.hh:1285
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1432
const CON & getCON() const
Definition: pdelab.hh:834
CC & getCC()
Definition: pdelab.hh:933
CGFEMBase< GV, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:589
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:679
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:910
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:512
const GO & getGO() const
Definition: pdelab.hh:1527
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:724
T::LeafGridView GV
Definition: pdelab.hh:1189
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1973
LS & getLS()
Definition: pdelab.hh:1904
Definition: pdelab.hh:391
Definition: pdelab.hh:1665
GFS & getGFS()
Definition: pdelab.hh:1409
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:836
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1157
CON & getCON()
Definition: pdelab.hh:539
const GO * operator->() const
Definition: pdelab.hh:1547
T::ctype ctype
Definition: pdelab.hh:330
UserFunction(const FS &fs_, const Functor &f_)
constructor
Definition: pdelab.hh:1478
GridFunctionSpace< GV, FEM, CON, VBE > GFS
Definition: pdelab.hh:1389
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1390
Definition: pdelab.hh:1505
GFS & getGFS()
Definition: pdelab.hh:1314
DGCONBase()
Definition: pdelab.hh:846
GFS & getGFS()
Definition: pdelab.hh:1027
const LS * operator->() const
Definition: pdelab.hh:1859
const FEM & getFEM() const
Definition: pdelab.hh:740
StructuredGrid(Dune::GeometryType::BasicType meshtype, unsigned int cells)
Definition: pdelab.hh:98
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1010
const CC & getCC() const
Definition: pdelab.hh:1418
FEM & getFEM()
Definition: pdelab.hh:1214
Definition: pdelab.hh:1279
const LS & operator*() const
Definition: pdelab.hh:1908
T Grid
Definition: pdelab.hh:1379
const GO & operator*() const
Definition: pdelab.hh:1700
const T * operator->() const
Definition: pdelab.hh:375
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:667
LS * operator->()
Definition: pdelab.hh:1956
FEM & getFEM()
Definition: pdelab.hh:735
Definition: noconstraints.hh:16
PkLocalFiniteElementMap< GV, C, R, degree > FEM
Definition: pdelab.hh:398
CC & getCC()
Definition: pdelab.hh:1320
const LS & getLS() const
Definition: pdelab.hh:1954
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:600
LS & getLS()
Definition: pdelab.hh:1779
VBET VBE
Definition: pdelab.hh:714
GridFunctionTraits< typename FS::GV, typename FS::NT, 1, FieldVector< typename FS::NT, 1 > > Traits
Definition: pdelab.hh:1475
GFS & getGFS()
Definition: pdelab.hh:746
LS * operator->()
Definition: pdelab.hh:1782
CON & getCON()
Definition: pdelab.hh:513
const T & getGrid() const
Definition: pdelab.hh:355
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:569
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:486
GO * operator->()
Definition: pdelab.hh:1537
LS & operator*()
Definition: pdelab.hh:1831
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:542
T::ctype ctype
Definition: pdelab.hh:995
OPBLocalFiniteElementMap< ctype, NT, degree, dim, gt > FEM
Definition: pdelab.hh:902
const LS & operator*() const
Definition: pdelab.hh:1957
CONB::CON CON
Definition: pdelab.hh:712
Backend for sequential BiCGSTAB solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:261
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1009
ISTLBackend_SEQ_BCGS_SSOR LS
Definition: pdelab.hh:1873
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:475
void constraints(const GFS &gfs, CG &cg, const bool verbose=false)
construct constraints
Definition: constraints.hh:751
T Grid
Definition: pdelab.hh:893
const T & operator*() const
Definition: pdelab.hh:178
ISTLSolverBackend_CG_SSOR(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int steps_=5, int verbose_=1)
Definition: pdelab.hh:1823
LS & operator*()
Definition: pdelab.hh:1980
void clearConstraints()
Definition: pdelab.hh:775
GalerkinGlobalAssembler(const FS &fs, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1515
Definition: pdelab.hh:434
T::ctype ctype
Definition: pdelab.hh:703
const CC & getCC() const
Definition: pdelab.hh:936
GO & getGO()
Definition: pdelab.hh:1679
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:798
YaspGrid< dim > Grid
Definition: pdelab.hh:200
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1297
DGCONBase()
Definition: pdelab.hh:863
T::ctype ctype
Definition: pdelab.hh:1094
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:538
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:601
void copy_nonconstrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:989
const LS & operator*() const
Definition: pdelab.hh:1858
T Grid
Definition: pdelab.hh:1284
CONB::CON CON
Definition: pdelab.hh:905
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:673
Definition: pdelab.hh:325
Definition: pdelab.hh:1612
GlobalAssembler(const FSU &fsu, const FSV &fsv, LOP &lop, const std::size_t nonzeros)
Definition: pdelab.hh:1622
LS & getLS()
Definition: pdelab.hh:1804
static const int dimworld
Definition: pdelab.hh:95
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1296
VBET VBE
Definition: pdelab.hh:906
FEM & getFEM()
Definition: pdelab.hh:1023
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1326
void postGFSHook(const GFS &gfs)
Definition: pdelab.hh:460
void setNonConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1247
N NT
Definition: pdelab.hh:717
N NT
Definition: pdelab.hh:998
CC & getCC()
Definition: pdelab.hh:758
void copyConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:792
CON & getCON()
Definition: pdelab.hh:850
N NT
Definition: pdelab.hh:1384
FEMB::FEM FEM
Definition: pdelab.hh:711
GalerkinGlobalAssemblerNewBackend(const FS &fs, LOP &lop, const MBE &mbe)
Definition: pdelab.hh:1568
const LS & getLS() const
Definition: pdelab.hh:1929
const GFS & getGFS() const
Definition: pdelab.hh:633
void set_constrained_dofs(const CG &cg, typename XG::ElementType x, XG &xg)
construct constraints from given boundary condition function
Definition: constraints.hh:798
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1355
const LS & operator*() const
Definition: pdelab.hh:1758
Dune::PDELab::ISTLBackend_SEQ_CG_AMG_SSOR< typename ASS::GO > LS
Definition: pdelab.hh:1721
const LS * operator->() const
Definition: pdelab.hh:1759
N NT
Definition: pdelab.hh:1193
Backend for sequential conjugate gradient solver with SSOR preconditioner.
Definition: seqistlsolverbackend.hh:348
const CC & getCC() const
Definition: pdelab.hh:1227
const GO & operator*() const
Definition: pdelab.hh:1595
Dune::PDELab::ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1562
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition: function.hh:117
const LS * operator->() const
Definition: pdelab.hh:1983
const LS & operator*() const
Definition: pdelab.hh:1733
Definition: pdelab.hh:1942
LS & operator*()
Definition: pdelab.hh:1856
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:1104
Backend using (possibly nested) ISTL BCRSMatrices.
Definition: bcrsmatrixbackend.hh:190
CON & getCON()
Definition: pdelab.hh:833
const LS * operator->() const
Definition: pdelab.hh:1809
const LS * operator->() const
Definition: pdelab.hh:1885
Backend::Vector< GFS, N > DOF
Definition: pdelab.hh:1103
void clearConstraints()
Definition: pdelab.hh:1427
const LS * operator->() const
Definition: pdelab.hh:1958
GFS::template ConstraintsContainer< N >::Type CC
Definition: pdelab.hh:1105
void make_consistent(const GFS &gfs, DOF &x) const
Definition: pdelab.hh:870
Dune::PDELab::DiscreteGridFunction< GFS, DOF > DGF
Definition: pdelab.hh:719
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1050
T Grid
Definition: pdelab.hh:993
Definition: pdelab.hh:1869
std::enable_if< std::is_base_of< impl::WrapperBase, T >::value, Native< T > &>::type native(T &t)
Definition: backend/interface.hh:192
const CON & getCON() const
Definition: pdelab.hh:540
ISTLBackend_NOVLP_CG_SSORk< typename ASS::GO > LS
Definition: pdelab.hh:1821
CONB::CON CON
Definition: pdelab.hh:1387
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:780
VBET VBE
Definition: pdelab.hh:1197
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:527
leaf of a function tree
Definition: function.hh:575
const CON & getCON() const
Definition: pdelab.hh:851
Definition: pdelab.hh:1792
DGCONBase< st > CONB
Definition: pdelab.hh:1004
T Grid
Definition: pdelab.hh:1092
void assembleConstraints(const BCType &bctype)
Definition: pdelab.hh:769
void copyNonConstrainedDOFS(const DOF &xin, DOF &xout) const
Definition: pdelab.hh:1068
CGFEMBase< ES, ctype, N, degree, dim, gt > FEMB
Definition: pdelab.hh:708
UnstructuredGrid(std::string filename, bool verbose=true, bool insert_boundary_segments=true)
Definition: pdelab.hh:335
GO & getGO()
Definition: pdelab.hh:1574
void copy_constrained_dofs(const CG &cg, const XG &xgin, XG &xgout)
Definition: constraints.hh:938
void assembleConstraints(const BCTYPE &bctype)
Definition: pdelab.hh:1134
Grid::ctype ctype
Definition: pdelab.hh:201
Grid * operator->()
Definition: pdelab.hh:304
Definition: pdelab.hh:435
LS * operator->()
Definition: pdelab.hh:2006
T Grid
Definition: pdelab.hh:701
DGCONBase< st > CONB
Definition: pdelab.hh:904
const T & getGrid() const
Definition: pdelab.hh:163
CGFEMBase(const GV &gridview)
Definition: pdelab.hh:418
LS & operator*()
Definition: pdelab.hh:1756
const CON & getCON() const
Definition: pdelab.hh:868
LS & getLS()
Definition: pdelab.hh:1928
P0ParallelConstraints CON
Definition: pdelab.hh:862
CGCONBase(Grid &grid, const BCType &bctype, const GV &gv)
Definition: pdelab.hh:449
void setConstrainedDOFS(DOF &x, NT nt) const
Definition: pdelab.hh:1337
const LS & operator*() const
Definition: pdelab.hh:1783
const CON & getCON() const
Definition: pdelab.hh:567
ISTLBackend_OVLP_BCGS_SSORk< typename FS::GFS, typename FS::CC > LS
Definition: pdelab.hh:1921
GFS & getGFS()
Definition: pdelab.hh:927
CGSpace(Grid &grid, const BCType &bctype)
Definition: pdelab.hh:605
ISTLSolverBackend_ExplicitDiagonal(const FS &fs, const ASS &ass, unsigned maxiter_=5000, int verbose_=1)
Definition: pdelab.hh:1948
Nonoverlapping parallel CG solver preconditioned by block SSOR.
Definition: novlpistlsolverbackend.hh:847
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:911
const CC & getCC() const
Definition: pdelab.hh:1131
const LS & getLS() const
Definition: pdelab.hh:2004
const FEM & getFEM() const
Definition: pdelab.hh:1119
const GO & getGO() const
Definition: pdelab.hh:1580
T::ctype ctype
Definition: pdelab.hh:93
R RangeType
range type
Definition: function.hh:60
ISTL::BCRSMatrixBackend MBE
Definition: pdelab.hh:1616
T::ctype ctype
Definition: pdelab.hh:1286
Dune::PDELab::P0LocalFiniteElementMap< ctype, NT, dim > FEM
Definition: pdelab.hh:1385
Definition: pdelab.hh:579
VTKGridFunctionAdapter< DGF > VTKF
Definition: pdelab.hh:1011
const LS & getLS() const
Definition: pdelab.hh:1780