MDStressLab++
SubConfiguration.cpp
Go to the documentation of this file.
1 /*
2  * SubConfiguration.cpp
3  *
4  * Created on: Dec 16, 2019
5  * Author: Nikhil
6  */
7 
8 #include "SubConfiguration.h"
9 
11  Configuration(stencil.particleContributingMap.size(), stencil.parent.coordinates.at(Reference).rows()>0),
12  parent(stencil.parent)
13 {
14  int numberOfParticlesInParent= parent.numberOfParticles;
15 
17  particleContributing.setZero();
18 
19 
20  int referenceAndFinal= (coordinates.at(Reference).rows()>0);
21 
22  int i_localParticle=0;
23  for(const auto& particleContributingPair : stencil.particleContributingMap)
24  {
25  int particle= particleContributingPair.first;
26  int contributing= particleContributingPair.second;
27 
28  auto result= globalLocalMap.insert({particle,i_localParticle});
29  assert(result.second && "Insertion failed in the creation of a glocalLocalMap");
30  particleContributing[i_localParticle]= contributing;
31 
32  this->coordinates.at(Current).row(i_localParticle)= parent.coordinates.at(Current).row(particle);
33  if (referenceAndFinal) this->coordinates.at(Reference).row(i_localParticle)= parent.coordinates.at(Reference).row(particle);
34  this->velocities.row(i_localParticle)= parent.velocities.row(particle);
35  this->species.push_back(parent.species[particle]);
36  i_localParticle++;
37  }
38 
39 }
40 
42  // TODO Auto-generated destructor stub
43 }
44 
const Configuration & parent
std::map< ConfigType, MatrixXd > coordinates
Definition: Configuration.h:24
MatrixXd velocities
Definition: Configuration.h:25
VectorXi particleContributing
std::map< int, int > particleContributingMap
Definition: Stencil.h:25
std::vector< std::string > species
Definition: Configuration.h:23
SubConfiguration(const Stencil &stencil)
std::map< int, int > globalLocalMap