diff --git a/FDTD/processcurrent.cpp b/FDTD/processcurrent.cpp index e6ad194..8ee4007 100644 --- a/FDTD/processcurrent.cpp +++ b/FDTD/processcurrent.cpp @@ -16,6 +16,7 @@ */ #include "processcurrent.h" +#include ProcessCurrent::ProcessCurrent(Operator* op, Engine* eng) : Processing(op, eng) { @@ -97,6 +98,6 @@ int ProcessCurrent::Process() // cerr << "ts: " << Eng->numTS << " i: " << current << endl; v_current.push_back(current); //current is sampled half a timestep later then the voltages - file << (0.5 + (double)Eng->GetNumberOfTimesteps())*Op->GetTimestep() << "\t" << current << endl; + file << setprecision(m_precision) << (0.5 + (double)Eng->GetNumberOfTimesteps())*Op->GetTimestep() << "\t" << current << endl; return GetNextInterval(); } diff --git a/FDTD/processfields.cpp b/FDTD/processfields.cpp index b18e62a..46d9c7d 100644 --- a/FDTD/processfields.cpp +++ b/FDTD/processfields.cpp @@ -17,6 +17,7 @@ #include "processfields.h" +#include #include "H5Cpp.h" ProcessFields::ProcessFields(Operator* op, Engine* eng) : Processing(op, eng) @@ -26,6 +27,7 @@ ProcessFields::ProcessFields(Operator* op, Engine* eng) : Processing(op, eng) // vtk-file is default m_fileType = VTK_FILETYPE; SetSubSampling(1); + SetPrecision(6); for (int n=0;n<3;++n) { @@ -203,7 +205,7 @@ void ProcessFields::SetSubSampling(unsigned int subSampleRate, int dir) else subSample[dir]=subSampleRate; } -void ProcessFields::WriteVTKHeader(ofstream &file, double** discLines, unsigned int* numLines) +void ProcessFields::WriteVTKHeader(ofstream &file, double** discLines, unsigned int* numLines, unsigned int precision) { file << "# vtk DataFile Version 2.0" << endl; file << "Rectilinear Grid openEMS_ProcessFields" << endl; @@ -212,20 +214,20 @@ void ProcessFields::WriteVTKHeader(ofstream &file, double** discLines, unsigned file << "DIMENSIONS " << numLines[0] << " " << numLines[1] << " " << numLines[2] << endl; file << "X_COORDINATES " << numLines[0] << " float" << endl; for (unsigned int i=0;i ProcessVoltage::ProcessVoltage(Operator* op, Engine* eng) : Processing(op, eng) { @@ -45,6 +46,6 @@ int ProcessVoltage::Process() FDTD_FLOAT voltage=CalcLineIntegral(start,stop,0); // cerr << voltage << endl; voltages.push_back(voltage); - file << (double)Eng->GetNumberOfTimesteps()*Op->GetTimestep() << "\t" << voltage << endl; + file << setprecision(m_precision) << (double)Eng->GetNumberOfTimesteps()*Op->GetTimestep() << "\t" << voltage << endl; return GetNextInterval(); }