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

Make the subdomain solutions available in maps

[[Imported from SVN: r6760]]
parent 237cc6bf
No related branches found
No related tags found
No related merge requests found
...@@ -252,10 +252,11 @@ class RodContinuumSteklovPoincareStep ...@@ -252,10 +252,11 @@ class RodContinuumSteklovPoincareStep
static const int dim = ContinuumGridType::dimension; static const int dim = ContinuumGridType::dimension;
// The type used for rod configurations // The type used for rod configurations
typedef std::vector<RigidBodyMotion<dim> > RodSolutionType; typedef std::vector<RigidBodyMotion<dim> > RodConfigurationType;
// The type used for continuum configurations // The type used for continuum configurations
typedef Dune::BlockVector<Dune::FieldVector<double,dim> > VectorType; typedef Dune::BlockVector<Dune::FieldVector<double,dim> > VectorType;
typedef Dune::BlockVector<Dune::FieldVector<double,dim> > ContinuumConfigurationType;
typedef Dune::BlockVector<Dune::FieldVector<double,6> > RodCorrectionType; typedef Dune::BlockVector<Dune::FieldVector<double,6> > RodCorrectionType;
...@@ -333,7 +334,9 @@ private: ...@@ -333,7 +334,9 @@ private:
RodLocalStiffness<typename RodGridType::LeafGridView,double>* rodLocalStiffness_; RodLocalStiffness<typename RodGridType::LeafGridView,double>* rodLocalStiffness_;
RiemannianTrustRegionSolver<RodGridType,RigidBodyMotion<3> >* rodSolver_; RiemannianTrustRegionSolver<RodGridType,RigidBodyMotion<3> >* rodSolver_;
public:
std::map<std::string, RodConfigurationType> rodSubdomainSolutions_;
private:
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
// Data members related to the continuum problems // Data members related to the continuum problems
////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////
...@@ -354,6 +357,9 @@ private: ...@@ -354,6 +357,9 @@ private:
typename ContinuumFEBasis::LocalFiniteElement, typename ContinuumFEBasis::LocalFiniteElement,
typename ContinuumFEBasis::LocalFiniteElement>* localAssembler_; typename ContinuumFEBasis::LocalFiniteElement>* localAssembler_;
public:
std::map<std::string, ContinuumConfigurationType> continuumSubdomainSolutions_;
private:
}; };
...@@ -371,7 +377,7 @@ void RodContinuumSteklovPoincareStep<RodGridType,ContinuumGridType>::iterate(Rig ...@@ -371,7 +377,7 @@ void RodContinuumSteklovPoincareStep<RodGridType,ContinuumGridType>::iterate(Rig
RigidBodyMotion<3> rodDirichletValue = complex_.rodDirichletValues_["rod"].back(); RigidBodyMotion<3> rodDirichletValue = complex_.rodDirichletValues_["rod"].back();
// Set initial iterate // Set initial iterate
RodSolutionType rodX; RodConfigurationType& rodX = rodSubdomainSolutions_["rod"];
RodFactory<typename RodGridType::LeafGridView> rodFactory(complex_.rodGrids_["rod"]->leafView()); RodFactory<typename RodGridType::LeafGridView> rodFactory(complex_.rodGrids_["rod"]->leafView());
rodFactory.create(rodX,lambda,rodDirichletValue); rodFactory.create(rodX,lambda,rodDirichletValue);
...@@ -403,7 +409,8 @@ void RodContinuumSteklovPoincareStep<RodGridType,ContinuumGridType>::iterate(Rig ...@@ -403,7 +409,8 @@ void RodContinuumSteklovPoincareStep<RodGridType,ContinuumGridType>::iterate(Rig
// Evaluate the Dirichlet-to-Neumann map for the continuum // Evaluate the Dirichlet-to-Neumann map for the continuum
/////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////
VectorType x3d(complex_.continuumGrids_["continuum"]->size(dim)); VectorType& x3d = continuumSubdomainSolutions_["continuum"];
x3d.resize(complex_.continuumGrids_["continuum"]->size(dim));
x3d = 0; x3d = 0;
// Turn \lambda \in TSE(3) into a Dirichlet value for the continuum // Turn \lambda \in TSE(3) into a Dirichlet value for the continuum
......
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