[Dune] Help needed with pdelab dof blocking
Oliver Sander
sander at igpm.rwth-aachen.de
Sun Jan 5 20:02:36 CET 2014
Dear Dune users,
[I'm writing this to the general Dune list instead of the pdelab list,
because it is rare (for me) to receive an answer on latter list.]
I need help setting up an FEM space. I want to solve a standard linear
elasticity problem on a structured grid using Q1 elements. ISTL is to
be used as the linear algebra backend, and I expect the matrix and vector
types pdelab gives me to be
BCRSMatrix<FieldMatrix<double,3,3> > and BlockVector<FieldVector<double,3> >
Unfortunately, the little test program I attach below gives me
BCRSMatrix<FieldMatrix<double,1,1> > and BlockVector<FieldVector<double,1> >
instead. Surely I am using the wrong parameters, but as pdelab is slightly
under-documented I am stuck now. Can somebody please tell me how I need
to adjust my code to get the matrix and vector types I want?
Many thanks,
Oliver
#include "config.h"
#include<iostream>
#include<dune/common/fvector.hh>
#include<dune/grid/yaspgrid.hh>
#include<dune/pdelab/finiteelementmap/q1fem.hh>
#include<dune/pdelab/constraints/conforming.hh>
#include<dune/pdelab/gridfunctionspace/vectorgridfunctionspace.hh>
#include<dune/pdelab/gridfunctionspace/gridfunctionspaceutilities.hh>
#include<dune/pdelab/gridfunctionspace/interpolate.hh>
#include <dune/pdelab/gridfunctionspace/vtk.hh>
#include<dune/pdelab/constraints/common/constraints.hh>
#include<dune/pdelab/common/function.hh>
#include<dune/pdelab/backend/istlvectorbackend.hh>
#include<dune/pdelab/backend/istlmatrixbackend.hh>
#include<dune/pdelab/localoperator/linearelasticity.hh>
#include<dune/pdelab/constraints/constraintsparameters.hh>
#include<dune/pdelab/gridoperator/gridoperator.hh>
using namespace Dune;
const int dim = 3;
typedef YaspGrid<dim> GridType;
typedef PDELab::Q1LocalFiniteElementMap<double,double,dim> FEM;
typedef PDELab::VectorGridFunctionSpace<
GridType::LeafGridView,
FEM,
dim,
PDELab::ISTLVectorBackend<>,
PDELab::ISTLVectorBackend<>,
PDELab::ConformingDirichletConstraints,
PDELab::LexicographicOrderingTag,
PDELab::DefaultLeafOrderingTag
> GFS;
typedef GFS::ConstraintsContainer<double>::Type C;
typedef PDELab::GridOperator<GFS,GFS,PDELab::LinearElasticity,PDELab::ISTLMatrixBackend,double,double,double,C,C> GO;
typedef GO::Traits::Domain V;
typedef GO::Jacobian M;
typedef M::BaseT ISTL_M;
typedef V::BaseT ISTL_V;
int main(int argc, char** argv)
{
std::cout << "Vector type: " << className<ISTL_V>() << std::endl;
std::cout << "Matrix type: " << className<ISTL_M>() << std::endl;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 551 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20140105/a40acb57/attachment.sig>
More information about the Dune
mailing list