Newer
Older
// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
#include <config.h>
#include <iostream>
#include <dune/common/exceptions.hh>
#include <dune/common/parallel/mpihelper.hh>
#include <dune/grid/yaspgrid.hh>
#include <dune/grid/uggrid.hh>
#include <dune/grid/io/file/gmshreader.hh>
#include <dune/grid/onedgrid.hh>
#include <dune/grid/io/file/vtk/subsamplingvtkwriter.hh>
#include <dune/grid/utility/structuredgridfactory.hh>
#include <dune/functions/functionspacebases/lagrangebasis.hh>
#include <dune/functions/hermitebasis.hh>
// #include <dune/alugrid/grid.hh>
#include <dune/grid/albertagrid.hh>
#include <dune/functions/functionspacebases/test/basistest.hh>
#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>
using namespace Dune;
using namespace Dune::Functions;
int main (int argc, char* argv[])
{
Dune::MPIHelper::instance(argc, argv);
Dune::TestSuite test;
using namespace Dune::Functions::BasisFactory;
= StructuredGridFactory<OneDGrid>::createSimplexGrid({0.}, {1.}, {10});
test.subTest(checkBasis(basis, EnableContinuityCheck()));
using Grid = UGGrid<2>;
// using Grid = YaspGrid<2>;
auto grid = StructuredGridFactory<Grid>::createSimplexGrid({0., 0.}, {1., 1.}, {{10, 10}});
// using Reader = GmshReader<Grid>;
// std::unique_ptr<Grid> grid(Reader::read("gridfile.msh"));
// auto gridFactory = GridFactory<Grid>();
// gridFactory.insertVertex({0.,0.});
// gridFactory.insertVertex({1., 0.});
// gridFactory.insertVertex({1., 1.});
// gridFactory.insertVertex({0., 1.});
// gridFactory.insertElement(GeometryTypes::simplex(2),{0,1,2});
// gridFactory.insertElement(GeometryTypes::simplex(2),{0,2,3});
// auto grid = gridFactory.createGrid();
std::cout<<"Grid has "<<gridView.size(0)<<" elementes and "<<gridView.size(1)<<" facettes and "<<gridView.size(2)<<" vertices"<<std::endl;
using GridView = decltype(gridView);
{
using namespace Dune::Functions::BasisFactory;
auto basis = makeBasis(gridView, hermite());
std::cout<<"Basis has "<<basis.size()<<" Dofs"<<std::endl;
test.subTest(checkBasis(basis, EnableContinuityCheck()));