Something went wrong on our end
gridSampleDef.c 1.23 KiB
///////////////////////////////////////////////////////////////////////
// Author: Jeff Comer <jcomer2@illinois.edu>
#include <cstdio>
#include <cstdlib>
#include "useful.h"
#include "BaseGrid.h"
#include "OverlordGrid.h"
using namespace std;
int main(int argc, char* argv[]) {
if ( argc != 4 ) {
printf("Usage: %s systemDefinitionFile spacing outputFile\n", argv[0]);
printf("You entered %i arguments.\n", argc-1);
return 0;
}
const char* systemDefFile = argv[1];
const float spacing = strtod(argv[2], NULL);
String rootGrid = OverlordGrid::readDefFirst(systemDefFile);
OverlordGrid* over = new OverlordGrid(rootGrid.val());
int count = over->readDef(systemDefFile);
printf("Found %d unique grids.\n", over->getUniqueGridNum());
printf("Linked %d subgrids.\n", count);
over->writeSubgrids("subgrid.txt");
Matrix3 box(over->getBox());
Vector3 org(over->getOrigin());
BaseGrid sample(box, org, spacing);
const int n = sample.length();
printf("Sampling...\n");
for (int i = 0; i < n; i++) {
Vector3 r = sample.getPosition(i);
float v = over->interpolatePotential(r);
//Vector3 f = over->interpolateForce(r);
sample.setValue(i, v);
}
sample.write(argv[argc-1]);
delete over;
return 0;
}