void writePatchValues(double xMin, double xMax, double yMin, double yMax, SolutionPtr solution, VarPtr u1, string filename, int numPoints=100) { FieldContainer<double> points = pointGrid(xMin,xMax,yMin,yMax,numPoints); FieldContainer<double> values(numPoints*numPoints); solution->solutionValues(values, u1->ID(), points); ofstream fout(filename.c_str()); fout << setprecision(15); fout << "X = zeros(" << numPoints << ",1);\n"; // fout << "Y = zeros(numPoints);\n"; fout << "U = zeros(" << numPoints << "," << numPoints << ");\n"; for (int i=0; i<numPoints; i++) { fout << "X(" << i+1 << ")=" << points(i,0) << ";\n"; } for (int i=0; i<numPoints; i++) { fout << "Y(" << i+1 << ")=" << points(i,1) << ";\n"; } for (int i=0; i<numPoints; i++) { for (int j=0; j<numPoints; j++) { int pointIndex = i*numPoints + j; fout << "U("<<i+1<<","<<j+1<<")=" << values(pointIndex) << ";" << endl; } } fout.close(); }
FieldContainer<double> solutionData(FieldContainer<double> &points, SolutionPtr solution, VarPtr u1) { int numPoints = points.dimension(0); FieldContainer<double> values(numPoints); solution->solutionValues(values, u1->ID(), points); FieldContainer<double> xyzData(numPoints, 3); for (int ptIndex=0; ptIndex<numPoints; ptIndex++) { xyzData(ptIndex,0) = points(ptIndex,0); xyzData(ptIndex,1) = points(ptIndex,1); xyzData(ptIndex,2) = values(ptIndex); } return xyzData; }