Skip to content

Commit 0294aa8

Browse files
committed
Output element coordinates in csv
1 parent e8f4e5e commit 0294aa8

2 files changed

Lines changed: 23 additions & 13 deletions

File tree

libmfpic/ParticleOperations.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,15 +291,25 @@ void ParticleOperations::writeMomentsCSVsPerSpecies(const ParticleContainer& par
291291
out << std::setprecision(17);
292292

293293
if (need_header) {
294-
out << "step,time,elem,number_density,temperature,bulk_velocity_0,bulk_velocity_1,bulk_velocity_2\n";
294+
out << "step,time,elem,x,y,z,number_density,temperature,bulk_velocity_0,bulk_velocity_1,bulk_velocity_2\n";
295295
}
296296

297297
for (int e = 0; e < nelem; ++e) {
298+
mfem::ElementTransformation *element_transform = mesh.GetElementTransformation(e);
299+
mfem::IntegrationPoint ip = mfem::IntRules.Get(mesh.GetElementBaseGeometry(e), 1).IntPoint(0);
300+
element_transform->SetIntPoint(&ip);
301+
mfem::Vector element_point(3);
302+
element_point = 0.0;
303+
const int dim = mesh.SpaceDimension();
304+
mfem::Vector element_point_view(element_point.GetData(), dim);
305+
element_transform->Transform(ip, element_point_view);
306+
298307
const mfem::Vector bulk_velocity_in_element(particle_bulk_velocity_(s).GetColumn(e), 3);
299308

300309
out << step << ","
301310
<< time << ","
302311
<< e << ","
312+
<< element_point(0) << "," << element_point(1) << "," << element_point(2) << ","
303313
<< particle_number_density_(e, s) << ","
304314
<< particle_temperature_(e, s) << ","
305315
<< bulk_velocity_in_element(0) << "," << bulk_velocity_in_element(1) << "," << bulk_velocity_in_element(2) << "\n";

libmfpic/ParticleOperations.test.cpp

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1166,17 +1166,17 @@ TEST(ParticleOperationsCSV, CSVCorrectForOneSpecies)
11661166
for (int e = 0; e < num_elems; ++e) {
11671167
const std::string& line = lines[1 + step*num_elems + e];
11681168
auto toks = splitCsv(line);
1169-
ASSERT_EQ(toks.size(), static_cast<size_t>(8));
1169+
ASSERT_EQ(toks.size(), static_cast<size_t>(11));
11701170

11711171
EXPECT_EQ(stringToInt(toks[0]), step);
11721172
EXPECT_DOUBLE_EQ(stringToDouble(toks[1]), dt*step);
11731173
EXPECT_EQ(stringToInt(toks[2]), e);
11741174

1175-
const double csv_number_density = stringToDouble(toks[3]);
1176-
const double csv_temperature = stringToDouble(toks[4]);
1177-
const double csv_bulk_velocity_0 = stringToDouble(toks[5]);
1178-
const double csv_bulk_velocity_1 = stringToDouble(toks[6]);
1179-
const double csv_bulk_velocity_2 = stringToDouble(toks[7]);
1175+
const double csv_number_density = stringToDouble(toks[6]);
1176+
const double csv_temperature = stringToDouble(toks[7]);
1177+
const double csv_bulk_velocity_0 = stringToDouble(toks[8]);
1178+
const double csv_bulk_velocity_1 = stringToDouble(toks[9]);
1179+
const double csv_bulk_velocity_2 = stringToDouble(toks[10]);
11801180

11811181
EXPECT_NEAR(csv_number_density, computed_number_density(e, s), 1e-12);
11821182
EXPECT_NEAR(csv_temperature, computed_temperature(e, s), 1e-12);
@@ -1262,17 +1262,17 @@ TEST(ParticleOperationsCSV, CSVCorrectForTwoSpecies)
12621262
for (int e = 0; e < num_elems; ++e) {
12631263
const std::string& line = lines[1 + step*num_elems + e];
12641264
auto toks = splitCsv(line);
1265-
ASSERT_EQ(toks.size(), static_cast<size_t>(8));
1265+
ASSERT_EQ(toks.size(), static_cast<size_t>(11));
12661266

12671267
EXPECT_EQ(stringToInt(toks[0]), step);
12681268
EXPECT_DOUBLE_EQ(stringToDouble(toks[1]), dt*step);
12691269
EXPECT_EQ(stringToInt(toks[2]), e);
12701270

1271-
const double csv_number_density = stringToDouble(toks[3]);
1272-
const double csv_temperature = stringToDouble(toks[4]);
1273-
const double csv_bulk_velocity_0 = stringToDouble(toks[5]);
1274-
const double csv_bulk_velocity_1 = stringToDouble(toks[6]);
1275-
const double csv_bulk_velocity_2 = stringToDouble(toks[7]);
1271+
const double csv_number_density = stringToDouble(toks[6]);
1272+
const double csv_temperature = stringToDouble(toks[7]);
1273+
const double csv_bulk_velocity_0 = stringToDouble(toks[8]);
1274+
const double csv_bulk_velocity_1 = stringToDouble(toks[9]);
1275+
const double csv_bulk_velocity_2 = stringToDouble(toks[10]);
12761276

12771277
EXPECT_NEAR(csv_number_density, computed_number_density(e, s), 1e-12);
12781278
EXPECT_NEAR(csv_temperature, computed_temperature(e, s), 1e-12);

0 commit comments

Comments
 (0)