add csv2matrix function

This commit is contained in:
Hannes Signer 2023-08-02 10:35:36 +02:00
parent 695b80beaf
commit 33fd35a65a
3 changed files with 38 additions and 2 deletions

28
examples/csv2eigen.hpp Normal file
View File

@ -0,0 +1,28 @@
#include <iostream>
#include <Eigen/Core>
#include <fstream>
using namespace std;
using namespace Eigen;
inline MatrixXd CSV2Eigen(string file2Convert){
vector<double> matrixEntries;
ifstream matrixDataFile(file2Convert);
string matrixRowString;
string matrixEntry;
int matrixRowNumber = 0;
while(getline(matrixDataFile, matrixRowString)){
stringstream matrixRowStringStream(matrixRowString);
while(getline(matrixRowStringStream, matrixEntry, ' ')){
matrixEntries.push_back(stod(matrixEntry));
}
matrixRowNumber++;
}
return Map<Matrix<double, Dynamic, Dynamic, RowMajor>>(matrixEntries.data(), matrixRowNumber, matrixEntries.size() / matrixRowNumber);
}

View File

@ -1,4 +1,6 @@
#include <tug/Simulation.hpp>
#include "csv2eigen.hpp"
#include "Eigen/Core"
int main(int argc, char *argv[]) {
int row = 11;
@ -42,8 +44,14 @@ int main(int argc, char *argv[]) {
Simulation sim = Simulation(grid, bc, FTCS_APPROACH);
//sim.setTimestep(0.001);
sim.setIterations(2);
sim.setOutputCSV(CSV_OUTPUT_VERBOSE);
sim.setOutputCSV(CSV_OUTPUT_ON);
MatrixXd mymatrix = CSV2Eigen("/Users/hannessigner/Documents/tug/build/examples/FTCS_11_11_2-1.csv");
cout << "Matrix start:" << endl;
cout << mymatrix << endl;
//bool r = grid.isApprox(mymatrix);
// RUN
sim.run();

View File

@ -152,7 +152,7 @@ void Simulation::run() {
}
if (this->csv_output > CSV_OUTPUT_OFF) {
filename = createCSVfile();
printConcentrationsCSV(filename);
// printConcentrationsCSV(filename);
}
if (approach == FTCS_APPROACH) {