Skip to content
Snippets Groups Projects
Commit f4908112 authored by Soeren Peters's avatar Soeren Peters
Browse files

Merge branch 'develop' of https://git.rz.tu-bs.de/irmb/VirtualFluids_dev into develop

parents cd5ff2c4 feb05911
No related branches found
No related tags found
1 merge request!9Fixed CMake Cuda workaround and merge conflict error.
...@@ -1047,88 +1047,79 @@ void GbTriFaceMesh3D::readMeshFromSTLFile(string filename, bool removeRedundantN ...@@ -1047,88 +1047,79 @@ void GbTriFaceMesh3D::readMeshFromSTLFile(string filename, bool removeRedundantN
dummy = in.readString(); dummy = in.readString();
nr += 3; nr += 3;
} }
if (removeRedundantNodes) { if (removeRedundantNodes)
{
this->deleteRedundantNodes(); // dort wird autoamtisch calculateValues() aufgerufen this->deleteRedundantNodes(); // dort wird autoamtisch calculateValues() aufgerufen
} else { } else {
this->calculateValues(); this->calculateValues();
} }
} }
////////////////////////////////////////////////////////////////////////// /*======================================================================*/
// void GbTriFaceMesh3D::writeMeshToSTLFile(string filename, bool isBinaryFormat) void GbTriFaceMesh3D::readMeshFromSTLFileBinary(string filename, bool removeRedundantNodes)
//{ {
// vector<GbTriFaceMesh3D::Vertex> *nodes = new vector<GbTriFaceMesh3D::Vertex>; //vector<GbTriFaceMesh3D::Vertex> *nodes = new vector<GbTriFaceMesh3D::Vertex>;
// vector<GbTriFaceMesh3D::TriFace> *triangles = new vector<GbTriFaceMesh3D::TriFace>; //vector<GbTriFaceMesh3D::TriFace> *triangles = new vector<GbTriFaceMesh3D::TriFace>;
// int nr=0; int nr = 0;
//
// if (!isBinaryFormat) { if (!true) {
// ofstream out(filename.c_str()); ifstream in(filename.c_str());
// if (!out.good()) if (!in.good()) {
// { delete nodes;
// delete nodes; delete triangles;
// delete triangles; UB_THROW(UbException(UB_EXARGS, "Can not open STL file: " + filename));
// UB_THROW(UbException(UB_EXARGS, "Can not open STL file: "+filename)); }
// } char title[80];
// char title[80] = "ASCII"; std::string s0, s1;
// std::string s0, s1; float n0, n1, n2, f0, f1, f2, f3, f4, f5, f6, f7, f8;
// float n0, n1, n2, f0, f1, f2, f3, f4, f5, f6, f7, f8; in.read(title, 80);
// out.write(title, 80); while (!in.eof()) {
// size_t size = nodes->size(); in >> s0; // facet || endsolid
// for (size_t i = 0; i < size) if (s0 == "facet") {
// { in >> s1 >> n0 >> n1 >> n2; // normal x y z
// out << nodes[i++] in >> s0 >> s1; // outer loop
// in >> s0; // facet || endsolid in >> s0 >> f0 >> f1 >> f2; // vertex x y z
// if (s0=="facet") { in >> s0 >> f3 >> f4 >> f5; // vertex x y z
// in >> s1 >> n0 >> n1 >> n2; // normal x y z in >> s0 >> f6 >> f7 >> f8; // vertex x y z
// in >> s0 >> s1; // outer loop in >> s0; // endloop
// in >> s0 >> f0 >> f1 >> f2; // vertex x y z in >> s0; // endfacet
// in >> s0 >> f3 >> f4 >> f5; // vertex x y z // Generate a new Triangle without Normal as 3 Vertices
// in >> s0 >> f6 >> f7 >> f8; // vertex x y z nodes->push_back(GbTriFaceMesh3D::Vertex(f0, f1, f2));
// in >> s0; // endloop nodes->push_back(GbTriFaceMesh3D::Vertex(f3, f4, f5));
// in >> s0; // endfacet nodes->push_back(GbTriFaceMesh3D::Vertex(f6, f7, f8));
// // Generate a new Triangle without Normal as 3 Vertices triangles->push_back(GbTriFaceMesh3D::TriFace(nr, nr + 1, nr + 2));
// nodes->push_back(GbTriFaceMesh3D::Vertex(f0, f1, f2)); nr += 3;
// nodes->push_back(GbTriFaceMesh3D::Vertex(f3, f4, f5)); } else if (s0 == "endsolid") {
// nodes->push_back(GbTriFaceMesh3D::Vertex(f6, f7, f8)); break;
// triangles->push_back(GbTriFaceMesh3D::TriFace(nr, nr+1, nr+2)); }
// nr+=3; }
// } in.close();
// else if (s0=="endsolid") { } else {
// break; FILE *f = fopen(filename.c_str(), "rb");
// } if (!f) {
// } delete nodes;
// in.close(); delete triangles;
// } UB_THROW(UbException(UB_EXARGS, "Can not open STL file: " + filename));
// else { }
// FILE *f = fopen(filename.c_str(), "rb"); char title[80];
// if (!f) int nFaces;
// { fread(title, 80, 1, f);
// delete nodes; fread((void *)&nFaces, 4, 1, f);
// delete triangles; float v[12]; // normal=3, vertices=3*3 = 12
// UB_THROW(UbException(UB_EXARGS, "Can not open STL file: "+filename)); unsigned short uint16;
// } // Every Face is 50 Bytes: Normal(3*float), Vertices(9*float), 2 Bytes Spacer
// char title[80]; for (size_t i = 0; i < nFaces; ++i) {
// int nFaces; for (size_t j = 0; j < 12; ++j) {
// fread(title, 80, 1, f); fread((void *)&v[j], sizeof(float), 1, f);
// fread((void*)&nFaces, 4, 1, f); }
// float v[12]; // normal=3, vertices=3*3 = 12 fread((void *)&uint16, sizeof(unsigned short), 1, f); // spacer between successive faces
// unsigned short uint16; nodes->push_back(GbTriFaceMesh3D::Vertex(v[3], v[4], v[5]));
// // Every Face is 50 Bytes: Normal(3*float), Vertices(9*float), 2 Bytes Spacer nodes->push_back(GbTriFaceMesh3D::Vertex(v[6], v[7], v[8]));
// for (size_t i=0; i<nFaces; ++i) { nodes->push_back(GbTriFaceMesh3D::Vertex(v[9], v[10], v[11]));
// for (size_t j=0; j<12; ++j) { triangles->push_back(GbTriFaceMesh3D::TriFace(nr, nr + 1, nr + 2));
// fread((void*)&v[j], sizeof(float), 1, f); nr += 3;
// } }
// fread((void*)&uint16, sizeof(unsigned short), 1, f); // spacer between successive faces fclose(f);
// nodes->push_back(GbTriFaceMesh3D::Vertex(v[3], v[4], v[5])); }
// nodes->push_back(GbTriFaceMesh3D::Vertex(v[6], v[7], v[8])); this->calculateValues();
// nodes->push_back(GbTriFaceMesh3D::Vertex(v[9], v[10], v[11])); }
// triangles->push_back(GbTriFaceMesh3D::TriFace(nr, nr+1, nr+2));
// nr+=3;
// }
// fclose(f);
// }
//
// GbTriFaceMesh3D* mesh = new GbTriFaceMesh3D(meshName, nodes, triangles, splitAlg, removeRedundantNodes);
//
// return mesh;
//}
//////////////////////////////////////////////////////////////////////////
...@@ -270,6 +270,7 @@ public: ...@@ -270,6 +270,7 @@ public:
this->transX3 = transX3; this->transX3 = transX3;
} }
void readMeshFromSTLFile(std::string filename, bool removeRedundantNodes); void readMeshFromSTLFile(std::string filename, bool removeRedundantNodes);
void readMeshFromSTLFileBinary(std::string filename, bool removeRedundantNodes);
double getX1Minimum() override double getX1Minimum() override
{ {
......
...@@ -248,15 +248,31 @@ void WriteMacroscopicQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block) ...@@ -248,15 +248,31 @@ void WriteMacroscopicQuantitiesCoProcessor::addDataMQ(SPtr<Block3D> block)
maxX1 -= 1; maxX1 -= 1;
maxX2 -= 1; maxX2 -= 1;
maxX3 -= 1; maxX3 -= 1;
int SWBi, SEBi, NEBi, NWBi, SWTi, SETi, NETi, NWTi;
// cell vector erstellen // cell vector erstellen
for (int ix3 = minX3; ix3 <= maxX3; ix3++) { for (int ix3 = minX3; ix3 <= maxX3; ix3++) {
for (int ix2 = minX2; ix2 <= maxX2; ix2++) { for (int ix2 = minX2; ix2 <= maxX2; ix2++) {
for (int ix1 = minX1; ix1 <= maxX1; ix1++) { for (int ix1 = minX1; ix1 <= maxX1; ix1++) {
if ((SWB = nodeNumbers(ix1, ix2, ix3)) >= 0 && (SEB = nodeNumbers(ix1 + 1, ix2, ix3)) >= 0 && if (
(NEB = nodeNumbers(ix1 + 1, ix2 + 1, ix3)) >= 0 && (NWB = nodeNumbers(ix1, ix2 + 1, ix3)) >= 0 && ( SWBi = nodeNumbers(ix1, ix2, ix3)) >= 0
(SWT = nodeNumbers(ix1, ix2, ix3 + 1)) >= 0 && (SET = nodeNumbers(ix1 + 1, ix2, ix3 + 1)) >= 0 && && (SEBi = nodeNumbers(ix1 + 1, ix2, ix3)) >= 0
(NET = nodeNumbers(ix1 + 1, ix2 + 1, ix3 + 1)) >= 0 && && (NEBi = nodeNumbers(ix1 + 1, ix2 + 1, ix3)) >= 0
(NWT = nodeNumbers(ix1, ix2 + 1, ix3 + 1)) >= 0) { && (NWBi = nodeNumbers(ix1, ix2 + 1, ix3)) >= 0
&& (SWTi = nodeNumbers(ix1, ix2, ix3 + 1)) >= 0
&& (SETi = nodeNumbers(ix1 + 1, ix2, ix3 + 1)) >= 0
&& (NETi = nodeNumbers(ix1 + 1, ix2 + 1, ix3 + 1)) >= 0
&& (NWTi = nodeNumbers(ix1, ix2 + 1, ix3 + 1)) >= 0
)
{
SWB =SWBi;
SEB =SEBi;
NEB =NEBi;
NWB =NWBi;
SWT =SWTi;
SET =SETi;
NET =NETi;
NWT =NWTi;
cells.push_back(makeUbTuple(SWB, SEB, NEB, NWB, SWT, SET, NET, NWT)); cells.push_back(makeUbTuple(SWB, SEB, NEB, NWB, SWT, SET, NET, NWT));
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment