From 51244853f1162b6f1a4f8577fb18e8c73c4a9045 Mon Sep 17 00:00:00 2001 From: Iason Date: Sat, 16 Jan 2021 14:02:42 +0200 Subject: [PATCH] Changed float to double in element dimensions and material. Changed the ground of truth displacements of the unit tests since they were affected by the change. --- beam.hpp | 26 +++++++++++------- beamformfinder.cpp | 9 ++++-- elementalmesh.cpp | 4 +-- elementalmesh.hpp | 8 +++--- .../LongSpanGridshell_displacements.eigenBin | Bin 6736 -> 6736 bytes .../ShortSpanGridshell_displacements.eigenBin | Bin 1024 -> 1024 bytes .../SimpleBeam_displacements.eigenBin | Bin 256 -> 256 bytes 7 files changed, 28 insertions(+), 19 deletions(-) diff --git a/beam.hpp b/beam.hpp index f629662..1ec22a9 100644 --- a/beam.hpp +++ b/beam.hpp @@ -6,9 +6,9 @@ struct RectangularBeamDimensions { inline static std::string name{"Rectangular"}; - float b; - float h; - RectangularBeamDimensions(const float &width, const float &height) + double b; + double h; + RectangularBeamDimensions(const double &width, const double &height) : b(width), h(height) { assert(width > 0 && height > 0); } @@ -17,12 +17,12 @@ struct RectangularBeamDimensions { struct CylindricalBeamDimensions { inline static std::string name{"Cylindrical"}; - float od; // Cylinder outside diameter - float + double od; // Cylinder outside diameter + double id; // Cylinder inside diameter // https://www.engineeringtoolbox.com/area-moment-inertia-d_1328.html - CylindricalBeamDimensions(const float &outsideDiameter, - const float &insideDiameter) + CylindricalBeamDimensions(const double &outsideDiameter, + const double &insideDiameter) : od(outsideDiameter), id(insideDiameter) { assert(outsideDiameter > 0 && insideDiameter > 0 && outsideDiameter > insideDiameter); @@ -31,14 +31,20 @@ struct CylindricalBeamDimensions { }; struct ElementMaterial { - float poissonsRatio; // NOTE: if I make this double the unit - // tests produced different results and thus fail + double poissonsRatio; // NOTE: if I make this double the unit + // tests produced different results and thus fail double youngsModulus; - ElementMaterial(const float &poissonsRatio, const double &youngsModulus) + ElementMaterial(const double &poissonsRatio, const double &youngsModulus) : poissonsRatio(poissonsRatio), youngsModulus(youngsModulus) { assert(poissonsRatio <= 0.5 && poissonsRatio >= -1); } ElementMaterial() : poissonsRatio(0.3), youngsModulus(200) {} + std::string toString() const { + return std::string("Material:") + std::string("\nPoisson's ratio=") + + std::to_string(poissonsRatio) + + std::string("\nYoung's Modulus(GPa)=") + + std::to_string(youngsModulus / 1e9); + } }; #endif // BEAM_HPP diff --git a/beamformfinder.cpp b/beamformfinder.cpp index f0e22ea..975257d 100644 --- a/beamformfinder.cpp +++ b/beamformfinder.cpp @@ -1865,9 +1865,12 @@ FormFinder::executeSimulation(const std::shared_ptr &pJob, std::cout << "Non terminating simulation found. Saved simulation job to:" << dir << std::endl; std::cout << "Exiting.." << std::endl; - // FormFinder debug; - // debug.executeSimulation(pJob, true, true, true); - // std::terminate(); + FormFinder debug; + FormFinder::Settings settings; + settings.shouldDraw = true; + settings.beVerbose = true; + debug.executeSimulation(pJob, settings); + std::terminate(); break; } diff --git a/elementalmesh.cpp b/elementalmesh.cpp index e8da8e1..5f02a8e 100644 --- a/elementalmesh.cpp +++ b/elementalmesh.cpp @@ -333,11 +333,11 @@ bool SimulationMesh::savePly(const std::string &plyFilename) { nanoply::NanoPlyWrapper::CustomAttributeDescriptor customAttrib; customAttrib.GetMeshAttrib(plyFilename); - dimensions = getBeamDimensions(); + std::vector dimensions = getBeamDimensions(); customAttrib.AddEdgeAttribDescriptor( plyPropertyBeamDimensionsID, nanoply::NNP_LIST_INT8_FLOAT32, dimensions.data()); - material = getBeamMaterial(); + std::vector material = getBeamMaterial(); customAttrib.AddEdgeAttribDescriptor( plyPropertyBeamMaterialID, nanoply::NNP_LIST_INT8_FLOAT32, material.data()); diff --git a/elementalmesh.hpp b/elementalmesh.hpp index 25cc456..31909cc 100644 --- a/elementalmesh.hpp +++ b/elementalmesh.hpp @@ -7,8 +7,8 @@ struct Element; struct Node; -using CrossSectionType = RectangularBeamDimensions; -// using CrossSectionType = CylindricalBeamDimensions; +// using CrossSectionType = RectangularBeamDimensions; +using CrossSectionType = CylindricalBeamDimensions; class SimulationMesh : public VCGEdgeMesh { private: @@ -20,8 +20,8 @@ private: const std::string plyPropertyBeamDimensionsID{"beam_dimensions"}; const std::string plyPropertyBeamMaterialID{"beam_material"}; const std::string plyPropertyBeamProperties{"beam_properties"}; - std::vector material; - std::vector dimensions; + // std::vector material; + // std::vector dimensions; public: PerEdgeAttributeHandle elements; diff --git a/formFinder_unitTestFiles/LongSpanGridshell_displacements.eigenBin b/formFinder_unitTestFiles/LongSpanGridshell_displacements.eigenBin index 66491894beba32304f33a475f7a9332d3605ae1d..cd8534c3a97b8327ea2848a12da66fca9b764047 100644 GIT binary patch literal 6736 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 diff --git a/formFinder_unitTestFiles/SimpleBeam_displacements.eigenBin b/formFinder_unitTestFiles/SimpleBeam_displacements.eigenBin index 61a9a2344b97dada5f43dc7dd08f1a6f2d7ef6bd..335be93f57960261825ddcb453350aaacf266e68 100644 GIT binary patch literal 256 zcmZQ&fB-fq4WooN2b@*7wRykR*F}s@RGr<;n7c_O0f}V-Ea1YH!#R<{6W|(f&%Zj8jbd G!u