Skip to content
Snippets Groups Projects
hermitetest.cc 2.44 KiB
Newer Older
Porrmann, Maik's avatar
Porrmann, Maik committed

// -*- 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>
Porrmann, Maik's avatar
Porrmann, Maik committed
#include <dune/grid/onedgrid.hh>
#include <dune/grid/io/file/vtk/subsamplingvtkwriter.hh>
#include <dune/grid/utility/structuredgridfactory.hh>
Porrmann, Maik's avatar
Porrmann, Maik committed
#include <dune/functions/functionspacebases/lagrangebasis.hh>
#include <dune/functions/hermitebasis.hh>
// #include <dune/alugrid/grid.hh> 
#include <dune/grid/albertagrid.hh>
Porrmann, Maik's avatar
Porrmann, Maik committed
#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;

Porrmann, Maik's avatar
Porrmann, Maik committed
  { // 1d
Porrmann, Maik's avatar
Porrmann, Maik committed
    std::unique_ptr<OneDGrid> grid
Porrmann, Maik's avatar
Porrmann, Maik committed
      = StructuredGridFactory<OneDGrid>::createSimplexGrid({0.}, {1.}, {10});
Porrmann, Maik's avatar
Porrmann, Maik committed

    auto gridView = grid->levelGridView(0);

Porrmann, Maik's avatar
Porrmann, Maik committed
    {
      auto basis = makeBasis(gridView, lagrange<2>());
Porrmann, Maik's avatar
Porrmann, Maik committed
      test.subTest(checkBasis(basis, EnableContinuityCheck()));
Porrmann, Maik's avatar
Porrmann, Maik committed
  {   //2d
    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();

Porrmann, Maik's avatar
Porrmann, Maik committed
    auto gridView = grid->leafGridView();
    std::cout<<"Grid has "<<gridView.size(0)<<" elementes and "<<gridView.size(1)<<" facettes and "<<gridView.size(2)<<" vertices"<<std::endl;
Porrmann, Maik's avatar
Porrmann, Maik committed
    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()));
Porrmann, Maik's avatar
Porrmann, Maik committed
    }
  }
Porrmann, Maik's avatar
Porrmann, Maik committed

  return test.exit();
}