int main(int argc, char *argv[]) { try { if (argc != 3) THROW(eavlException,"Incorrect number of arguments"); string pFile = argv[1]; string mFile = argv[2]; //string pFile = "/apps/eavl/EAVL/data/xgc.restart.bp"; //string mFile = "/apps/eavl/EAVL/data/xgc.mesh.bp"; eavlDataSet *particles = ReadMeshFromFile(pFile, 0); eavlDataSet *psiMesh = ReadPsiMesh(mFile); //particles->PrintSummary(cout); //psiMesh->PrintSummary(cout); /* eavlRayQueryMutator *rqm = new eavlRayQueryMutator; AddTriangles(psiMesh, rqm); */ int nP = particles->GetNumPoints(); eavlField *Rf = particles->GetField("R"); eavlField *Zf = particles->GetField("Z"); double eq_x_psi = 0.266196; //From xgc.equil.bp cout<<"nParticles= "<<nP<<endl; for (int i = 0; i < nP; i++) { double R = Rf->GetArray()->GetComponentAsDouble(i,0); double Z = Zf->GetArray()->GetComponentAsDouble(i,0); double psi = GetPsi(R,Z, psiMesh); if (!IsRegion1(R,Z,psi)) cout<<i<<": open field"<<endl; } } catch (const eavlException &e) { cerr << e.GetErrorText() << endl; cerr << "\nUsage: "<<argv[0]<<" particle_file mesh_file\n"; return 1; } return 0; }
jdouble JNICALL Java_ardrone_ARDrone_getPsi(JNIEnv *env, jclass cls) { return GetPsi(); }