From 158db04660eb36a3727406e3e4de5e3c721fd9b8 Mon Sep 17 00:00:00 2001 From: iasonmanolas Date: Thu, 20 Oct 2022 13:32:42 +0300 Subject: [PATCH] Refactoring --- CMakeLists.txt | 71 ++-- csvfile.hpp | 128 +++--- .../LongSpanGridshell_displacements.eigenBin | Bin 0 -> 6736 bytes .../ShortSpanGridshell_displacements.eigenBin | Bin 0 -> 1024 bytes .../SimpleBeam_displacements.eigenBin | Bin 0 -> 256 bytes .../{ => Cylindrical}/longSpanGridshell.ply | 0 .../{ => Cylindrical}/shortSpanGridshell.ply | 0 .../{ => Cylindrical}/simpleBeam.ply | 0 .../LongSpanGridshell_displacements.eigenBin | Bin 6736 -> 0 bytes .../ShortSpanGridshell_displacements.eigenBin | Bin 1024 -> 0 bytes .../SimpleBeam_displacements.eigenBin | Bin 256 -> 0 bytes .../LongSpanGridshell_displacements.eigenBin | Bin 0 -> 6736 bytes .../ShortSpanGridshell_displacements.eigenBin | Bin 0 -> 1024 bytes .../SimpleBeam_displacements.eigenBin | Bin 0 -> 256 bytes .../longSpanGridshell.ply | 374 ++++++++++++++++++ .../shortSpanGridshell.ply | 69 ++++ .../rectangularCrossSection/simpleBeam.ply | 26 ++ 17 files changed, 566 insertions(+), 102 deletions(-) create mode 100644 formFinder_unitTestFiles/Cylindrical/LongSpanGridshell_displacements.eigenBin create mode 100644 formFinder_unitTestFiles/Cylindrical/ShortSpanGridshell_displacements.eigenBin create mode 100644 formFinder_unitTestFiles/Cylindrical/SimpleBeam_displacements.eigenBin rename formFinder_unitTestFiles/{ => Cylindrical}/longSpanGridshell.ply (100%) rename formFinder_unitTestFiles/{ => Cylindrical}/shortSpanGridshell.ply (100%) rename formFinder_unitTestFiles/{ => Cylindrical}/simpleBeam.ply (100%) delete mode 100644 formFinder_unitTestFiles/LongSpanGridshell_displacements.eigenBin delete mode 100644 formFinder_unitTestFiles/ShortSpanGridshell_displacements.eigenBin delete mode 100644 formFinder_unitTestFiles/SimpleBeam_displacements.eigenBin create mode 100644 formFinder_unitTestFiles/rectangularCrossSection/LongSpanGridshell_displacements.eigenBin create mode 100644 formFinder_unitTestFiles/rectangularCrossSection/ShortSpanGridshell_displacements.eigenBin create mode 100644 formFinder_unitTestFiles/rectangularCrossSection/SimpleBeam_displacements.eigenBin create mode 100644 formFinder_unitTestFiles/rectangularCrossSection/longSpanGridshell.ply create mode 100644 formFinder_unitTestFiles/rectangularCrossSection/shortSpanGridshell.ply create mode 100644 formFinder_unitTestFiles/rectangularCrossSection/simpleBeam.ply diff --git a/CMakeLists.txt b/CMakeLists.txt index 265a60d..bc00ce6 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,26 +23,24 @@ file(MAKE_DIRECTORY ${EXTERNAL_DEPS_DIR}) set(DRMSimulationModelDir "/home/iason/Coding/Libraries/DRMSimulationModel") set(DRMSimulationModelBuildDir ${CMAKE_BINARY_DIR}/_deps) add_subdirectory(${DRMSimulationModelDir} ${DRMSimulationModelBuildDir}) -target_link_libraries(${PROJECT_NAME} PUBLIC DRMSimulationModel) -target_include_directories(${PROJECT_NAME} PUBLIC ${DRMSimulationModelDir}) +target_link_libraries(${PROJECT_NAME} PUBLIC DRMSimulationModel_lib) +#target_include_directories(${PROJECT_NAME} PUBLIC DRMSimulationModel_) #target_sources(${PROJECT_NAME} PUBLIC ${DRMSimulationModelDir}/simulationmodel.hpp) -##dlib -#set(DLIB_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}/dlib) -#download_project(PROJ DLIB -# GIT_REPOSITORY https://github.com/davisking/dlib.git -# GIT_TAG master -# BINARY_DIR ${DLIB_BIN_DIR} -# PREFIX ${EXTERNAL_DEPS_DIR} -# ${UPDATE_DISCONNECTED_IF_AVAILABLE} -#) -#add_subdirectory(${DLIB_SOURCE_DIR} ${DLIB_BIN_DIR}) -#if(${MYSOURCES_STATIC_LINK}) -# target_link_libraries(${PROJECT_NAME} PUBLIC -static dlib::dlib) -#else() -# target_link_libraries(${PROJECT_NAME} PUBLIC dlib::dlib) -#endif() -#add_compile_definitions(DLIB_DEFINED) +if(${USE_DLIB}) + FetchContent_Declare(dlib + GIT_REPOSITORY https://github.com/davisking/dlib.git + GIT_TAG master + ) + FetchContent_MakeAvailable(dlib) + #add_subdirectory(${DLIB_SOURCE_DIR} ${DLIB_BIN_DIR}) + if(${MYSOURCES_STATIC_LINK}) + target_link_libraries(${PROJECT_NAME} PUBLIC -static dlib::dlib) + else() + target_link_libraries(${PROJECT_NAME} PUBLIC dlib::dlib) + endif() + add_compile_definitions(DLIB_DEFINED) +endif() ## polyscope if(#[[NOT TARGET polyscope AND]] ${USE_POLYSCOPE}) @@ -89,15 +87,6 @@ FetchContent_Declare(matplot GIT_TAG master ) FetchContent_MakeAvailable(matplot) -target_include_directories(${PROJECT_NAME} PUBLIC ${matplot_SOURCE_DIR}) -#set(MATPLOTPLUSPLUS_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/matplot) -#download_project(PROJ MATPLOTPLUSPLUS -# GIT_TAG master -# BINARY_DIR ${MATPLOTPLUSPLUS_BINARY_DIR} -# PREFIX ${EXTERNAL_DEPS_DIR} -# ${UPDATE_DISCONNECTED_IF_AVAILABLE} -# ) -#add_subdirectory(${MATPLOTPLUSPLUS_SOURCE_DIR} ${MATPLOTPLUSPLUS_BINARY_DIR}) ##threed-beam-fea if(NOT TARGET ThreedBeamFEA) @@ -130,9 +119,9 @@ if(${MYSOURCES_STATIC_LINK}) endif() if(${MYSOURCES_STATIC_LINK}) message("Linking statically here") - target_link_libraries(${PROJECT_NAME} PUBLIC #[[-static]] Eigen3::Eigen matplot pthread gfortran quadmath) + target_link_libraries(${PROJECT_NAME} PUBLIC #[[-static]] Eigen3::Eigen pthread gfortran quadmath matplot) else() - target_link_libraries(${PROJECT_NAME} PUBLIC Eigen3::Eigen matplot tbb pthread) + target_link_libraries(${PROJECT_NAME} PUBLIC Eigen3::Eigen tbb pthread matplot) endif() target_link_directories(MySources PUBLIC ${CMAKE_CURRENT_LIST_DIR}/boost_graph/libs) @@ -163,17 +152,8 @@ target_link_libraries(${PROJECT_NAME} PUBLIC "/home/iason/Coding/Libraries/armad #endif() #target_link_libraries(${PROJECT_NAME} PUBLIC "/home/iason/Coding/build/FormFInder/Debug/_deps/armadillo-build/libarmadillo.a") -###ENSMALLEN -#FetchContent_Declare(ensmallen -# GIT_REPOSITORY https://github.com/mlpack/ensmallen.git -# GIT_TAG master -# ) -#FetchContent_MakeAvailable(ensmallen) -#target_link_libraries(${PROJECT_NAME} PRIVATE ensmallen) -#target_include_directories(${PROJECT_NAME} -#PUBLIC ${ensmallen_SOURCE_DIR}/include) -#add_compile_definitions(USE_ENSMALLEN) +if(${USE_ENSMALLEN}) set(ENSMALLEN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ensmallen) download_project(PROJ ENSMALLEN GIT_REPOSITORY https://github.com/mlpack/ensmallen.git @@ -184,9 +164,18 @@ download_project(PROJ ENSMALLEN ) target_include_directories(${PROJECT_NAME} PUBLIC ${ENSMALLEN_SOURCE_DIR}/include) -message("ens dir:" ${ENSMALLEN_SOURCE_DIR}) add_compile_definitions(USE_ENSMALLEN) -#endif() +###ENSMALLEN +#FetchContent_Declare(ensmallen +# GIT_REPOSITORY https://github.com/mlpack/ensmallen.git +# GIT_TAG master +# ) +#FetchContent_MakeAvailable(ensmallen) +#target_link_libraries(${PROJECT_NAME} PRIVATE ensmallen) +#target_include_directories(${PROJECT_NAME} +#PUBLIC ${ensmallen_SOURCE_DIR}/include) +#add_compile_definitions(USE_ENSMALLEN) +endif() ##Chrono ##add_subdirectory("/home/iason/Coding/build/external dependencies/CHRONO-src" "/home/iason/Coding/build/external dependencies/CHRONO-src/build") diff --git a/csvfile.hpp b/csvfile.hpp index a90bbfd..e867cd6 100755 --- a/csvfile.hpp +++ b/csvfile.hpp @@ -9,39 +9,43 @@ #include #include -class csvFile; +class CSVFile; -inline static csvFile &endrow(csvFile &file); -inline static csvFile &flush(csvFile &file); +inline static CSVFile& endrow(CSVFile& file); +inline static CSVFile& flush(CSVFile& file); -class csvFile { +class CSVFile { std::ofstream fs_; bool is_first_; const std::string separator_; const std::string escape_seq_; const std::string special_chars_; - public: - csvFile(const std::filesystem::path &filename, - const bool &overwrite, + public: + CSVFile(const std::filesystem::path& filename, + const bool& overwrite, const std::string separator = ",") - : fs_(), is_first_(true), separator_(separator), escape_seq_("\""), special_chars_("\"") - { - fs_.exceptions(std::ios::failbit | std::ios::badbit); - if (filename.empty()) { - fs_.copyfmt(std::cout); - fs_.clear(std::cout.rdstate()); - fs_.basic_ios::rdbuf(std::cout.rdbuf()); - } else { - if (!std::filesystem::exists(filename)) { - std::ofstream outfile(filename); - outfile.close(); - } - overwrite ? fs_.open(filename, std::ios::trunc) : fs_.open(filename, std::ios::app); + : fs_(), + is_first_(true), + separator_(separator), + escape_seq_("\""), + special_chars_("\"") { + fs_.exceptions(std::ios::failbit | std::ios::badbit); + if (filename.empty()) { + fs_.copyfmt(std::cout); + fs_.clear(std::cout.rdstate()); + fs_.basic_ios::rdbuf(std::cout.rdbuf()); + } else { + if (!std::filesystem::exists(filename)) { + std::ofstream outfile(filename); + outfile.close(); } + overwrite ? fs_.open(filename, std::ios::trunc) + : fs_.open(filename, std::ios::app); + } } - ~csvFile() { + ~CSVFile() { flush(); fs_.close(); } @@ -53,50 +57,52 @@ class csvFile { is_first_ = true; } - csvFile &operator<<(csvFile &(*val)(csvFile &)) { return val(*this); } + CSVFile& operator<<(CSVFile& (*val)(CSVFile&)) { return val(*this); } - csvFile &operator<<(const char *val) { return write(escape(val)); } + CSVFile& operator<<(const char* val) { return write(escape(val)); } - csvFile &operator<<(const std::string &val) { return write(escape(val)); } + CSVFile& operator<<(const std::string& val) { return write(escape(val)); } - template - csvFile &operator<<(const T &val) - { - return write(val); + template + CSVFile& operator<<(const T& val) { + return write(val); } - static std::vector> parse(const std::filesystem::path &csvFilepath) - { - std::vector> resultCSV; - if (!std::filesystem::exists(csvFilepath)) { - std::cerr << "The file does not exist:" << csvFilepath.string() << std::endl; - return resultCSV; - } - - std::ifstream inputfile(csvFilepath.string().c_str()); - if (!inputfile.is_open()) { - std::cerr << "Can't open file:" << csvFilepath.string() << std::endl; - return resultCSV; - } - std::vector row; - std::string line; - using Tokenizer = boost::tokenizer>; - while (std::getline(inputfile, line)) { - Tokenizer tokenizer(line); - const int numOfCols = std::distance(tokenizer.begin(), tokenizer.end()); - row.resize(numOfCols); - std::copy(tokenizer.begin(), tokenizer.end(), row.begin()); - // std::transform(tokenizer.begin(), tokenizer.end(), row.begin(), [](const std::string &el) { - // return boost::lexical_cast(el); - // }); - resultCSV.push_back(row); - } - + static std::vector> parse( + const std::filesystem::path& csvFilepath) { + std::vector> resultCSV; + if (!std::filesystem::exists(csvFilepath)) { + std::cerr << "The file does not exist:" << csvFilepath.string() + << std::endl; return resultCSV; + } + + std::ifstream inputfile(csvFilepath.string().c_str()); + if (!inputfile.is_open()) { + std::cerr << "Can't open file:" << csvFilepath.string() << std::endl; + return resultCSV; + } + std::vector row; + std::string line; + using Tokenizer = boost::tokenizer>; + while (std::getline(inputfile, line)) { + Tokenizer tokenizer(line); + const int numOfCols = std::distance(tokenizer.begin(), tokenizer.end()); + row.resize(numOfCols); + std::copy(tokenizer.begin(), tokenizer.end(), row.begin()); + // std::transform(tokenizer.begin(), tokenizer.end(), + // row.begin(), [](const std::string &el) { + // return boost::lexical_cast(el); + // }); + resultCSV.push_back(row); + } + + return resultCSV; } -private: - template csvFile &write(const T &val) { + private: + template + CSVFile& write(const T& val) { if (!is_first_) { fs_ << separator_; } else { @@ -106,7 +112,7 @@ private: return *this; } - std::string escape(const std::string &val) { + std::string escape(const std::string& val) { std::ostringstream result; result << '"'; std::string::size_type to, from = 0u, len = val.length(); @@ -120,14 +126,14 @@ private: } }; -inline static csvFile &endrow(csvFile &file) { +inline static CSVFile& endrow(CSVFile& file) { file.endrow(); return file; } -inline static csvFile &flush(csvFile &file) { +inline static CSVFile& flush(CSVFile& file) { file.flush(); return file; } -#endif // CSVFILE_HPP +#endif // CSVFILE_HPP diff --git a/formFinder_unitTestFiles/Cylindrical/LongSpanGridshell_displacements.eigenBin b/formFinder_unitTestFiles/Cylindrical/LongSpanGridshell_displacements.eigenBin new file mode 100644 index 0000000000000000000000000000000000000000..0709c2d49345281abe3c337554154313e8b3401a GIT binary patch literal 6736 zcmb_fX*`tc`?t-^Gm@;4wN8;jSt@0j`{^i(Q&Ez#B_*Xoi6ToPYqq3NWQkA`6c9Wm=h1BTb9Q6GcpGD{ZKjJ0~WeH+#9`Jng+l_u(;$f!O8~*&w_hG_$_i>k3WgJ{i1%lhy_!ez!eCm2OzS|HR zKea-Qh41RKn1%n6#OERL?MVEz|KJaj{MeKHjK5&>6GZa!FqO@ZR~r|LpEh?n7C+{$ zY<^ZvvH8&<`T0!pV@2{)Lh9R0>U)LM*JKr2-vVy7zR^`jSo%^VWLWxY^t1IXCH3_u z_5JaPt?xNfU%}06e;Skiy!DLjPhHZVZ++SR{1sQu@@JB`8q1%KPucz)6J`5Ti1eo- z=}%)(wm&r|+4-vBXXh(7f}O83WWFc??0nr9X6I`rCXSV_U_ExenEToJI#9*V*F`d4 zX&5_S|Lc2js8}<%zBL788-+K;&O8R{@Ar=C7gU07N=Rxj$^pl(oGPj*-{_6{YtPUg z2%tG@hhzu^Ew8qboaI+nW$fMyKn1tG}pS)bN!_MU7#08F*g*A`xlpkzg?~Q{VA(J zP~-qJdwl`jf|Yap33@&Hd#D z@jymwlkzO8c343L?LZv(CbHu7OEfoks(msK?K$e6CPE@l{()av7_F$Y+yW4v8~ev) z9Kgz{JG-%cE(r;qv2IN9@PWYj@hbFQ9 z;<6548@HzwkAlS?_;uEfN{a{)ARCn_xaIbDW{A*Y{Z8Krrl9{d-sR_~n4!Dl90WFu zGOC`BkI(9jGV~*>_#FJEn1>{oAj5ltDG9AVh-H3fmRJS_ML!Yw1K+5Tg%8jCmGm2* zvGRe^Z+ynE+U4K)j57Djzww#$;cvh3nY)#r|Hfy`SQ5YS8SA3Vf8#TjH(&gX4>`JW z>PQ8PADA=D;s*wPWAOvama_PP?%^zc;6-N^Kk!-viyv4Y%;E=T?ql%-tJwVff&aRK zr7w&lSo*>zY<*!HTVJ^7FP6SgU7V#aEMe;lPl~eig|lpZ;iL{r-#_pN+5UvRzAS%2 zV;z=1p)}i{Fp2F?ILG!UOl12Lj~qc^8=`kc9Ja?hK@;ov3uVh1Wy z%0b(3)P+5vjli|o+51ZOTk!5}RjVrF9dL;oDOr&C0XUh>R0*PLcGM?H4)xuL*u6*4 zT&ih=iy7Keydg4Zomvjgk@$DW=h?|ObPRRWGWYmGp2`o~^Aj6{3;L|$6Uq33XLIp51Q;hy26 zk8gpIlc0h~d7w+wRM8p?=6ON5&R3 z$35OHtA+MfP3J$%LO82QKK~)>lPr3Z*gr22sI4fMGVT{gJ-dtZi&C(rHMH?UBA zkBLC!ciZ|`B zeK|hj_%oFBr_TT5Pjk|r8l*oDkp46y{b@=1lao(BG6z0nzIw@gg^~ICO6JRx%-3-; zU)#xid6N0^BlESG%$FAjm#m!Uarol!$I+itjY!|Akd?E?xdW90{L1>xWk4~?FyAYs z31ny|-+bKA4yeo^)l;q?K<@oHb4RO>AoBQ5ox`Z|XpBueqQ1|M9bVpOPWfD+r90ZY zGW^hR2;t;|eym>bIS6n&5#ucP97KHL^AZql0BdJX*GcKN0*Zl|e@b2l$fT_=liK+n z99sQ6LKIbx1zo+NsGq#n*MCf>6%0EZiu)?m0K_k6z#AE-p8a6*8pBf1 zT&!NIU|k0A6%AAds$R_}eo_?yfx+r`bh*1B|6{yJu2BzT;{&v0t8sD8?c?Q)> zCu*L%qJF60=QqP>&gM(@{l{qUL*`wnmnW_QX)f+tfmzppjxDw$eFVc}!^}2Ijbr#* zg`A7W8Zq3LyI%WY35Ihkge`gb2*X>aUAHpwFg!sa;glY#cGD`CUZDPmsJ?3jXzs{) z?<2qW%IgK0vIu9s^3N@|5w1{I+LUrJhA%GtoH+9o!{tu$oei@BG)Q>zBn|ce)NonLc2BW>tbH^X>Jj3uJ)vwN) z2)A~yct|P|!>z7n>gis_@H4^c$;Mn5zI4>Y$>9nOuLmOr+GaF-LFKi#)$3`vt$Ca9 z?|N2HRB8k2SIryfK7{60?|imx2ig@|0|c2n_@XT7DvzEqs6ikW78~qpoI-QH z{SViepuJGz%lyX>j_1*5mhK35Y5YTd!Fn3ryjj*#td53TMRk|IeNV+bj<5acAw|WV z(|;`e97e%qR63^%wJ5kokkiK^RF}?koa{$^GlOru-e_*ApNCy1+Iu3#?JI(C?vy;3 z5J0%DK9`qd_R#Ql?di^!m#DbeW;L$#ObSlueGE>bQ1GXI0gSFtK0GbjIq-MAaMMsc z1@&*Jwx#EwIU~JS!8K@aO>I@=b%fKlroVSnZ8=O;<8mtHeFnG7Xqj%mod>)7Iy@R` zGN5I4qQ633EL<*f0mJiSfvr-{qMTP5K+`f_$RsNdR1~DpL;0S80lsQKtJmc~B)hOg zGo}od4;+#+Y%YiUa(!f-d!Isu77EStN***%sh$ykngQ>PRVkgn9SeQD&Rtf_js?e8 zGu{wSGeG~jBZ`i3c|d5oq;vV_r{GtY=Vt3S<>1+oO4I0=G9Y)ZQbOOS35LpJUd+*Y zSTx{yFjA%(O1?h(>a=4C?Cyw;j*}~dKeF$Ny*`l&iWobc6M}q12!6~IZK$l2R6KG{IxAVf@4qH z7fOcl5h2?|R!?eC2q{OpOY<%&QQMq8w`~KBc=s!FGC|CJQZ5*bM|JSJ$7N~^r;ddSTH#Siz#2t|GbUK_u zWEl7gxKdfGAE<+`pk_P)5`l!Tq!*1KF z*J*^`PG`eKN*KXoaQv5BIYuZFQCcqL82)_SVCe!S41ZPA_$}Z%4R>1Px|`WY#oZh*GYGW1!Z`Cs%)rg@Ix+}T^%DSn9i_eU;h98Ys7Ikd$)I5w>n^c%gJ%SM@ z+(#wwR*X28_iB}PD~69s3*Mb|ME6j5X`O~} zUVGW6#@p&3qM(SCj8`zV}TW$p%ZrFCE=WaRuqZ z%S47uuY+H!S`ToACxYoTU4LEAE5Nf|bk`UAXpkEwl4_oP5FC~kPdYCU2G=RfmvY`6 z1&yUuvnibsu=bNhPJWgt?3}9A8gR;nQ~V1mrq161U(0{wL=8tl>Ehf%LG;&&5D)L} z*0Dg~_tk;v{w@gMrOLx!u3rL5$4@p4Is}44X~D>&43+|MUTs zS4Z}a_Fe_F(Bw`Ka0l{V?zZ~Wbql!qJS%i>jfLuNdxrd+Ou=~`&&a`rp5V0tcg+3^ z{s5M5UB;6c1eUfLBrSe&0o^O43emltL1(~DJ6z-F7C(^I zatP1*#~Zv;>l1UU@c<`AuNKq3dV_kf$w1@F1yEF^JYq9*8ED?=H_oBmgay~SdP-M> zgIk(=9?yS$3O4k_eKk`v0#dye6rb+BK&Kg-)i`i4WLmE%V5 zPkiq+(vqU%_B&LZzlhLrPtTQ+H55AG(r0G;sSCsTr5kMpdFjM%@u!S2gm0;#tjdMv z{d!Ce6^hgGj3MEHd|^7S^)v04nJ68fU%Wv|d?6i|vO8SIi{97v%`OoXq~npz_HjHv zG5pj;vCNJxjL1%^W1gx;dB|^aFhV&|N>%K6B~Qm?UCzDxDn`dYD(8=TETH3t-SRul z`04nz-dmbD!nu=>d=mW&fQQ$bius`D+Dpeb8=;@?FP4be@dd;0rN>7ct;UGD5oOo$ zdl;UwVMs%ci%t~n?yIpxdy7_n^}+<`xKc%6rwrQL&TZ~s!$-$U9=kfmqW*Yw-|^Gv z`{|c2=G9t6#~;XOOnM_;CXAz8RmU)VB=?osz&(uUHobXn7rLj>y%Cvb(A=jU`Ez^v zF}&%V&#vwP3~wj^?bJyOx1l7R)%=CwA-5Bmb%^i9k{J!dR60>DBIItuO($l4#c!8G z{LYjN%T~zK3DwbqImSg8A*FsfPH+e#0C!z7V-_RC7Vq7?38NFHXQaLy5T_HKl6q?s t7t;yxhq|jnkuIBj-WZu8Jsh{ZTds-G@n!tAit4i%el{w2h(3hj{|CAkwf6u3 literal 0 HcmV?d00001 diff --git a/formFinder_unitTestFiles/Cylindrical/ShortSpanGridshell_displacements.eigenBin b/formFinder_unitTestFiles/Cylindrical/ShortSpanGridshell_displacements.eigenBin new file mode 100644 index 0000000000000000000000000000000000000000..241ac7c98d45fc45d1d17ab9001bce5d1e521f38 GIT binary patch literal 1024 zcmWe-fB-fqJ!>Wi?6m)}rvIUl^hA3-8S`4V=&N>Vn_e7h7oE5tD!<=AXIamUs|)Nu zneGmr{FQaTNcozJuP!XuFQ-0Z`?i|N_KXsDugXTo*+Y$G(27XEJtZ=3f7u3;tLtkf z@8_!tTK4tA0{f#0pJTJ`N!Uy3K3~9kbpgzL`_%c*RQrS{+9#+)JSu9vzK=Ojsi;~4 zVL!~B^8_FLQQ5b^etzet_q&1ix-lzq=bu|(50n4nn=Y_eXrld$Y&)yJfpPY^!exD5 zf&6mgZ>Q&b+}(HRjZ$6!s{-7eGgc-0>xS~%`{?iX@65WhZ)Rvosh{M;{faa8?OO_T zf0fvQRS%Kev2VBjgEbcy?0@iyA$T6pUwa(hZ<}`o?vMR2|DRHwbohYbP5apO&9Zlr zAK5=NzW?uy(M`C$>Pu$*Z!o@TZ$5)>606S(`=H;}JW)XY#L(@DTY&2K@N5V=<^96m zH_vdoXrH19~_wN*!f;<|4%>!u)??{I4CcXyz9 z3^N|;ZUw6EDhUx=h$O#iQ?q_W)Lnb0#5&KU)z|D-`kNLUWV>L$V~(0-8<78I!qhi= zf$~XLt(q>UU$b{<+^}?iz<&D=Q#9f(0r~$Jt7Hx+aynS>+>*Ekq+$LxPu0136UgTh zDfQY9q;G34xx^F7=CFLv>f6cc91dq#=d9!h@|ShbeSW5l)nT6hhHEE%*c^lm^M83O zvO6r^=DcYSke~ee*w1r7dGRfs@Bgj7wZEy_v+RNF)&1^EdSn9l{_kU%qc6ZVppu6LGWBqeV*&IGJ{G1zihV?+n{MVA! zb!-Q2{<4)l3X~63oOIQ*j?Lj#)@R6(r9?@zQZ+?yk2 zzlrtnR3@2jd;jV4t=9iLzMuWxoE_I!t+Ze9ljWp=%{@Dp-!BRRR;}Fs<|gmIt|J@{ z%2E}M7lGzaWmw2({Yqm0l@pTLK>H3HlajrbbA;o-J|)$sTZA|qoD7p#9{|-EYew|# x7UDSYP|xMZeO^unPto)B^;0+;*6TzEGy~0(Zn}HnHXEmd7~jHwzj!$h003e?$(R5D literal 0 HcmV?d00001 diff --git a/formFinder_unitTestFiles/Cylindrical/SimpleBeam_displacements.eigenBin b/formFinder_unitTestFiles/Cylindrical/SimpleBeam_displacements.eigenBin new file mode 100644 index 0000000000000000000000000000000000000000..fffc5ce73d270d91884253996ccf0b5fdcd7b4d9 GIT binary patch literal 256 zcmZQ&fB-fq4WlBTpEWq~@`4`*$Pb?{AJrMo;x)EzD+kx0{ z{k%Wpij!{;1Yh%IXk4$wqdnKgR(X-n}=LeB*HFOgZfLT8hJ=aK4~< Q?|F6yey>?`YyCMK00lc=ng9R* literal 0 HcmV?d00001 diff --git a/formFinder_unitTestFiles/longSpanGridshell.ply b/formFinder_unitTestFiles/Cylindrical/longSpanGridshell.ply similarity index 100% rename from formFinder_unitTestFiles/longSpanGridshell.ply rename to formFinder_unitTestFiles/Cylindrical/longSpanGridshell.ply diff --git a/formFinder_unitTestFiles/shortSpanGridshell.ply b/formFinder_unitTestFiles/Cylindrical/shortSpanGridshell.ply similarity index 100% rename from formFinder_unitTestFiles/shortSpanGridshell.ply rename to formFinder_unitTestFiles/Cylindrical/shortSpanGridshell.ply diff --git a/formFinder_unitTestFiles/simpleBeam.ply b/formFinder_unitTestFiles/Cylindrical/simpleBeam.ply similarity index 100% rename from formFinder_unitTestFiles/simpleBeam.ply rename to formFinder_unitTestFiles/Cylindrical/simpleBeam.ply diff --git a/formFinder_unitTestFiles/LongSpanGridshell_displacements.eigenBin b/formFinder_unitTestFiles/LongSpanGridshell_displacements.eigenBin deleted file mode 100644 index 45332e0fb3be7c09ee3de9f11ab5439f68192ba8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6736 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 diff --git a/formFinder_unitTestFiles/ShortSpanGridshell_displacements.eigenBin b/formFinder_unitTestFiles/ShortSpanGridshell_displacements.eigenBin deleted file mode 100644 index bebcaaa5b91197252270409bb9c9768c1f062007..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1024 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 literal 0 HcmV?d00001 diff --git a/formFinder_unitTestFiles/rectangularCrossSection/ShortSpanGridshell_displacements.eigenBin b/formFinder_unitTestFiles/rectangularCrossSection/ShortSpanGridshell_displacements.eigenBin new file mode 100644 index 0000000000000000000000000000000000000000..241ac7c98d45fc45d1d17ab9001bce5d1e521f38 GIT binary patch literal 1024 zcmWe-fB-fqJ!>Wi?6m)}rvIUl^hA3-8S`4V=&N>Vn_e7h7oE5tD!<=AXIamUs|)Nu zneGmr{FQaTNcozJuP!XuFQ-0Z`?i|N_KXsDugXTo*+Y$G(27XEJtZ=3f7u3;tLtkf z@8_!tTK4tA0{f#0pJTJ`N!Uy3K3~9kbpgzL`_%c*RQrS{+9#+)JSu9vzK=Ojsi;~4 zVL!~B^8_FLQQ5b^etzet_q&1ix-lzq=bu|(50n4nn=Y_eXrld$Y&)yJfpPY^!exD5 zf&6mgZ>Q&b+}(HRjZ$6!s{-7eGgc-0>xS~%`{?iX@65WhZ)Rvosh{M;{faa8?OO_T zf0fvQRS%Kev2VBjgEbcy?0@iyA$T6pUwa(hZ<}`o?vMR2|DRHwbohYbP5apO&9Zlr zAK5=NzW?uy(M`C$>Pu$*Z!o@TZ$5)>606S(`=H;}JW)XY#L(@DTY&2K@N5V=<^96m zH_vdoXrH19~_wN*!f;<|4%>!u)??{I4CcXyz9 z3^N|;ZUw6EDhUx=h$O#iQ?q_W)Lnb0#5&KU)z|D-`kNLUWV>L$V~(0-8<78I!qhi= zf$~XLt(q>UU$b{<+^}?iz<&D=Q#9f(0r~$Jt7Hx+aynS>+>*Ekq+$LxPu0136UgTh zDfQY9q;G34xx^F7=CFLv>f6cc91dq#=d9!h@|ShbeSW5l)nT6hhHEE%*c^lm^M83O zvO6r^=DcYSke~ee*w1r7dGRfs@Bgj7wZEy_v+RNF)&1^EdSn9l{_kU%qc6ZVppu6LGWBqeV*&IGJ{G1zihV?+n{MVA! zb!-Q2{<4)l3X~63oOIQ*j?Lj#)@R6(r9?@zQZ+?yk2 zzlrtnR3@2jd;jV4t=9iLzMuWxoE_I!t+Ze9ljWp=%{@Dp-!BRRR;}Fs<|gmIt|J@{ z%2E}M7lGzaWmw2({Yqm0l@pTLK>H3HlajrbbA;o-J|)$sTZA|qoD7p#9{|-EYew|# x7UDSYP|xMZeO^unPto)B^;0+;*6TzEGy~0(Zn}HnHXEmd7~jHwzj!$h003e?$(R5D literal 0 HcmV?d00001 diff --git a/formFinder_unitTestFiles/rectangularCrossSection/SimpleBeam_displacements.eigenBin b/formFinder_unitTestFiles/rectangularCrossSection/SimpleBeam_displacements.eigenBin new file mode 100644 index 0000000000000000000000000000000000000000..fffc5ce73d270d91884253996ccf0b5fdcd7b4d9 GIT binary patch literal 256 zcmZQ&fB-fq4WlBTpEWq~@`4`*$Pb?{AJrMo;x)EzD+kx0{ z{k%Wpij!{;1Yh%IXk4$wqdnKgR(X-n}=LeB*HFOgZfLT8hJ=aK4~< Q?|F6yey>?`YyCMK00lc=ng9R* literal 0 HcmV?d00001 diff --git a/formFinder_unitTestFiles/rectangularCrossSection/longSpanGridshell.ply b/formFinder_unitTestFiles/rectangularCrossSection/longSpanGridshell.ply new file mode 100644 index 0000000..d56cbb7 --- /dev/null +++ b/formFinder_unitTestFiles/rectangularCrossSection/longSpanGridshell.ply @@ -0,0 +1,374 @@ +ply +format ascii 1.0 +comment nanoply generated +element vertex 140 +property double x +property double y +property double z +property double nx +property double ny +property double nz +element edge 220 +property int vertex1 +property int vertex2 +end_header +1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 0.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 1.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 2.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 3.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 4.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 5.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 6.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 7.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 8.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 9.000000 0.000000 0.000000 0.000000 1.000000 +0.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +11.000000 10.000000 0.000000 0.000000 0.000000 1.000000 +1.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +2.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +3.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +4.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +5.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +6.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +7.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +8.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +9.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +10.000000 11.000000 0.000000 0.000000 0.000000 1.000000 +0 11 +1 12 +2 13 +3 14 +4 15 +5 16 +6 17 +7 18 +8 19 +9 20 +10 11 +11 23 +11 12 +12 24 +12 13 +13 25 +13 14 +14 26 +14 15 +15 27 +15 16 +16 28 +16 17 +17 29 +17 18 +18 30 +18 19 +19 31 +19 20 +20 32 +20 21 +22 23 +23 35 +23 24 +24 36 +24 25 +25 37 +25 26 +26 38 +26 27 +27 39 +27 28 +28 40 +28 29 +29 41 +29 30 +30 42 +30 31 +31 43 +31 32 +32 44 +32 33 +34 35 +35 47 +35 36 +36 48 +36 37 +37 49 +37 38 +38 50 +38 39 +39 51 +39 40 +40 52 +40 41 +41 53 +41 42 +42 54 +42 43 +43 55 +43 44 +44 56 +44 45 +46 47 +47 59 +47 48 +48 60 +48 49 +49 61 +49 50 +50 62 +50 51 +51 63 +51 52 +52 64 +52 53 +53 65 +53 54 +54 66 +54 55 +55 67 +55 56 +56 68 +56 57 +58 59 +59 71 +59 60 +60 72 +60 61 +61 73 +61 62 +62 74 +62 63 +63 75 +63 64 +64 76 +64 65 +65 77 +65 66 +66 78 +66 67 +67 79 +67 68 +68 80 +68 69 +70 71 +71 83 +71 72 +72 84 +72 73 +73 85 +73 74 +74 86 +74 75 +75 87 +75 76 +76 88 +76 77 +77 89 +77 78 +78 90 +78 79 +79 91 +79 80 +80 92 +80 81 +82 83 +83 95 +83 84 +84 96 +84 85 +85 97 +85 86 +86 98 +86 87 +87 99 +87 88 +88 100 +88 89 +89 101 +89 90 +90 102 +90 91 +91 103 +91 92 +92 104 +92 93 +94 95 +95 107 +95 96 +96 108 +96 97 +97 109 +97 98 +98 110 +98 99 +99 111 +99 100 +100 112 +100 101 +101 113 +101 102 +102 114 +102 103 +103 115 +103 104 +104 116 +104 105 +106 107 +107 119 +107 108 +108 120 +108 109 +109 121 +109 110 +110 122 +110 111 +111 123 +111 112 +112 124 +112 113 +113 125 +113 114 +114 126 +114 115 +115 127 +115 116 +116 128 +116 117 +118 119 +119 130 +119 120 +120 131 +120 121 +121 132 +121 122 +122 133 +122 123 +123 134 +123 124 +124 135 +124 125 +125 136 +125 126 +126 137 +126 127 +127 138 +127 128 +128 139 +128 129 diff --git a/formFinder_unitTestFiles/rectangularCrossSection/shortSpanGridshell.ply b/formFinder_unitTestFiles/rectangularCrossSection/shortSpanGridshell.ply new file mode 100644 index 0000000..e25e0cd --- /dev/null +++ b/formFinder_unitTestFiles/rectangularCrossSection/shortSpanGridshell.ply @@ -0,0 +1,69 @@ +ply +format ascii 1.0 +element vertex 21 { define "vertex" element, 8 of them in file } +property float x { vertex contains float "x" coordinate } +property float y { y coordinate is also a vertex property } +property float z { z coordinate, too } +property float nx +property float ny +property float nz +element edge 24 { there are 6 "face" elements in the file } +property int vertex1 +property int vertex2 +property list uchar float beam_dimensions +property list uchar float beam_material {poissons ratio , young's modulus in GPascal} +end_header + +0 0 0 0 0 1 +1 0 0 0 0 1 +2 0 0 0 0 1 +3 0 0 0 0 1 +4 0 0 0 0 1 +0 1 0 0 0 1 +2 1 0 0 0 1 +4 1 0 0 0 1 +0 2 0 0 0 1 +1 2 0 0 0 1 +2 2 0 0 0 1 +3 2 0 0 0 1 +4 2 0 0 0 1 +0 3 0 0 0 1 +2 3 0 0 0 1 +4 3 0 0 0 1 +0 4 0 0 0 1 +1 4 0 0 0 1 +2 4 0 0 0 1 +3 4 0 0 0 1 +4 4 0 0 0 1 + +0 1 2 0.03 0.026 2 0.3 200 +1 2 2 0.03 0.026 2 0.3 200 +2 3 2 0.03 0.026 2 0.3 200 +3 4 2 0.03 0.026 2 0.3 200 + +0 5 2 0.03 0.026 2 0.3 200 +2 6 2 0.03 0.026 2 0.3 200 +4 7 2 0.03 0.026 2 0.3 200 + + +8 9 2 0.03 0.026 2 0.3 200 +9 10 2 0.03 0.026 2 0.3 200 +10 11 2 0.03 0.026 2 0.3 200 +11 12 2 0.03 0.026 2 0.3 200 + +8 5 2 0.03 0.026 2 0.3 200 +10 6 2 0.03 0.026 2 0.3 200 +12 7 2 0.03 0.026 2 0.3 200 + +8 13 2 0.03 0.026 2 0.3 200 +10 14 2 0.03 0.026 2 0.3 200 +12 15 2 0.03 0.026 2 0.3 200 + +16 13 2 0.03 0.026 2 0.3 200 +18 14 2 0.03 0.026 2 0.3 200 +20 15 2 0.03 0.026 2 0.3 200 + +16 17 2 0.03 0.026 2 0.3 200 +17 18 2 0.03 0.026 2 0.3 200 +18 19 2 0.03 0.026 2 0.3 200 +19 20 2 0.03 0.026 2 0.3 200 \ No newline at end of file diff --git a/formFinder_unitTestFiles/rectangularCrossSection/simpleBeam.ply b/formFinder_unitTestFiles/rectangularCrossSection/simpleBeam.ply new file mode 100644 index 0000000..5681759 --- /dev/null +++ b/formFinder_unitTestFiles/rectangularCrossSection/simpleBeam.ply @@ -0,0 +1,26 @@ +ply +format ascii 1.0 +element vertex 5 { define "vertex" element, 8 of them in file } +property float x { vertex contains float "x" coordinate } +property float y { y coordinate is also a vertex property } +property float z { z coordinate, too } +property float nx +property float ny +property float nz +element edge 4 { there are 6 "face" elements in the file } +property int vertex1 +property int vertex2 +property list uchar float beam_dimensions +property list uchar float beam_material {poissons ratio , young's modulus in GPascal} +end_header + +0 0 0 0 0 1 +1 0 0 0 0 1 +2 0 0 0 0 1 +3 0 0 0 0 1 +4 0 0 0 0 1 + +0 1 2 0.03 0.026 2 0.3 200 +1 2 2 0.03 0.026 2 0.3 200 +2 3 2 0.03 0.026 2 0.3 200 +3 4 2 0.03 0.026 2 0.3 200