Skip to content
Snippets Groups Projects
Commit 92959cd2 authored by Oliver Sander's avatar Oliver Sander Committed by sander@FU-BERLIN.DE
Browse files

replace neumannassembler by BoundaryFunctionalAssembler

[[Imported from SVN: r6737]]
parent c0bfa724
No related branches found
No related tags found
No related merge requests found
......@@ -23,7 +23,6 @@
#include <dune/fufem/boundarypatch.hh>
#include <dune/fufem/prolongboundarypatch.hh>
#include <dune/fufem/sampleonbitfield.hh>
#include <dune/fufem/neumannassembler.hh>
#include <dune/fufem/computestress.hh>
#include <dune/fufem/functionspacebases/q1nodalbasis.hh>
......@@ -392,10 +391,17 @@ int main (int argc, char *argv[]) try
rodX[0].r,
neumannValues);
rhs3d = 0;
/* rhs3d = 0;
assembleAndAddNeumannTerm<GridType::LevelGridView, VectorType>(interfaceBoundary[complex.continuumGrids_["continuum"]->maxLevel()],
neumannValues,
rhs3d);
rhs3d);*/
/** \todo The LevelBasis is a hack. The interfaceBoundary should really by a LeafBoundaryPatch anyways */
typedef P1NodalBasis<GridType::LevelGridView,double> LevelBasis;
LevelBasis levelBasis(complex.continuumGrids_["continuum"]->levelView(toplevel));
BoundaryFunctionalAssembler<LevelBasis> boundaryFunctionalAssembler(levelBasis, interfaceBoundary.back());
BasisGridFunction<LevelBasis, VectorType> neumannValuesFunction(levelBasis, neumannValues);
NeumannBoundaryAssembler<GridType, FieldVector<double,dim> > localNeumannAssembler(neumannValuesFunction);
boundaryFunctionalAssembler.assemble(localNeumannAssembler, rhs3d, true);
// ///////////////////////////////////////////////////////////
// Solve the Neumann problem for the continuum
......
......@@ -11,6 +11,9 @@
#include <dune/istl/bcrsmatrix.hh>
#include <dune/istl/bvector.hh>
#include <dune/fufem/assemblers/boundaryfunctionalassembler.hh>
#include <dune/fufem/assemblers/localassemblers/neumannboundaryassembler.hh>
#include <dune/gfe/coupling/rodcontinuumcomplex.hh>
template <class GridView, class MatrixType, class VectorType>
......@@ -78,9 +81,11 @@ public:
// The weak form of the Neumann data
VectorType rhs = weakVolumeAndNeumannTerm_;
assembleAndAddNeumannTerm<GridView, VectorType>(interface_,
neumannValues,
rhs);
BoundaryFunctionalAssembler<P1Basis> boundaryFunctionalAssembler(basis, interface_);
BasisGridFunction<P1Basis,VectorType> neumannValuesFunction(basis,neumannValues);
NeumannBoundaryAssembler<typename GridView::Grid, Dune::FieldVector<double,3> > localNeumannAssembler(neumannValuesFunction);
boundaryFunctionalAssembler.assemble(localNeumannAssembler, rhs, false);
// Solve the Neumann problem for the continuum
VectorType x = dirichletValues_;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment