1 #include "Grid/grid_dist_id.hpp" 
    2 #include "data_type/aggregate.hpp" 
   74     auto it = Old.getDomainIterator();
 
   82         Old.template get<U>(
key) = 1.0;
 
   83         Old.template get<V>(
key) = 0.0;
 
   86         New.template get<U>(
key) = 0.0;
 
   87         New.template get<V>(
key) = 0.0;
 
  108     grid_key_dx<2> start({(
long int)std::floor(Old.size(0)*1.55f/domain.
getHigh(0)),(
long int)std::floor(Old.size(1)*1.55f/domain.
getHigh(1))});
 
  109     grid_key_dx<2> stop ({(
long int)std::ceil (Old.size(0)*1.85f/domain.
getHigh(0)),(
long int)std::ceil (Old.size(1)*1.85f/domain.
getHigh(1))});
 
  110     auto it_init = Old.getSubDomainIterator(start,stop);
 
  112     while (it_init.isNext())
 
  114         auto key = it_init.get();
 
  116         Old.template get<U>(
key) = 0.5 + (((
double)std::rand())/RAND_MAX -0.5)/100.0;
 
  117         Old.template get<V>(
key) = 0.25 + (((
double)std::rand())/RAND_MAX -0.5)/200.0;
 
  131 int main(
int argc, 
char* argv[])
 
  161     openfpm_init(&argc,&argv);
 
  167     size_t sz[2] = {128,128};
 
  185     size_t timeSteps = 15000;
 
  214     double spacing[2] = {Old.
spacing(0),Old.spacing(1)};
 
  229     init(Old,New,domain);
 
  271     Old.template ghost_get<U,V>();
 
  275     double uFactor = deltaT * du/(spacing[x]*spacing[x]);
 
  276     double vFactor = deltaT * dv/(spacing[x]*spacing[x]);
 
  278     for (
size_t i = 0; i < timeSteps; ++i)
 
  280         auto it = Old.getDomainIterator();
 
  287             New.get<U>(
key) = Old.get<U>(
key) + uFactor * (
 
  288                                         Old.get<U>(
key.move(x,1)) +
 
  289                                         Old.get<U>(
key.move(x,-1)) +
 
  290                                         Old.get<U>(
key.move(y,1)) +
 
  291                                         Old.get<U>(
key.move(y,-1)) +
 
  292                                         -4.0*Old.get<U>(
key)) +
 
  293                                         - deltaT * Old.get<U>(
key) * Old.get<V>(
key) * Old.get<V>(
key) +
 
  294                                         - deltaT * F * (Old.get<U>(
key) - 1.0);
 
  297             New.get<V>(
key) = Old.get<V>(
key) + vFactor * (
 
  298                                         Old.get<V>(
key.move(x,1)) +
 
  299                                         Old.get<V>(
key.move(x,-1)) +
 
  300                                         Old.get<V>(
key.move(y,1)) +
 
  301                                         Old.get<V>(
key.move(y,-1)) -
 
  303                                         deltaT * Old.get<U>(
key) * Old.get<V>(
key) * Old.get<V>(
key) +
 
  304                                         - deltaT * (F+K) * Old.get<V>(
key);
 
  318         Old.ghost_get<U,V>();
 
  324             Old.write_frame(
"output",count);
 
grid_key_dx is the key to access any element in the grid 
 
T getHigh(int i) const 
get the high interval of the box 
 
This is a distributed grid. 
 
This class represent an N-dimensional box. 
 
This class is a trick to indicate the compiler a specific specialization pattern. ...
 
aggregate of properties, from a list of object if create a struct that follow the OPENFPM native stru...
 
St spacing(size_t i) const 
Get the spacing of the grid in direction i. 
 
[v_transform metafunction]