From 6f66ee4d5189827579a76d38e1c18160d80f07d6 Mon Sep 17 00:00:00 2001 From: EulalieCoevoet Date: Thu, 13 Apr 2023 17:33:18 +0200 Subject: [PATCH 1/9] Initial commit --- README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e495273 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Shell \ No newline at end of file From 5f6f6994dd8a57d5e76a17af37fa482b071eedfc Mon Sep 17 00:00:00 2001 From: eulalie Date: Fri, 14 Apr 2023 12:14:33 +0200 Subject: [PATCH 2/9] [all] first commit --- CMakeLists.txt | 65 + LICENSE.md | 504 +++++++ README.md | 7 +- Shell.dox | 5 + ShellConfig.cmake.in | 22 + ShellTest.html | 13 + ShellTest.scn | 30 + Shell_test/CMakeLists.txt | 15 + doc/index.html | 0 doc/shell.png | Bin 0 -> 436037 bytes .../TriangularBendingFEMForceField.py | 23 + src/Shell/config.h.in | 34 + src/Shell/controller/MeshChangedEvent.cpp | 30 + src/Shell/controller/MeshChangedEvent.h | 53 + src/Shell/controller/MeshInterpolator.cpp | 39 + src/Shell/controller/MeshInterpolator.h | 82 ++ src/Shell/controller/MeshInterpolator.inl | 191 +++ src/Shell/engine/JoinMeshPoints.cpp | 48 + src/Shell/engine/JoinMeshPoints.h | 132 ++ src/Shell/engine/JoinMeshPoints.inl | 272 ++++ .../TriangularBendingFEMForceField.cpp | 45 + .../TriangularBendingFEMForceField.h | 300 ++++ .../TriangularBendingFEMForceField.inl | 1265 +++++++++++++++++ src/Shell/initShell.cpp | 71 + 24 files changed, 3245 insertions(+), 1 deletion(-) create mode 100644 CMakeLists.txt create mode 100644 LICENSE.md create mode 100644 Shell.dox create mode 100644 ShellConfig.cmake.in create mode 100644 ShellTest.html create mode 100644 ShellTest.scn create mode 100644 Shell_test/CMakeLists.txt create mode 100644 doc/index.html create mode 100644 doc/shell.png create mode 100644 examples/sofapython3/TriangularBendingFEMForceField.py create mode 100644 src/Shell/config.h.in create mode 100644 src/Shell/controller/MeshChangedEvent.cpp create mode 100644 src/Shell/controller/MeshChangedEvent.h create mode 100644 src/Shell/controller/MeshInterpolator.cpp create mode 100644 src/Shell/controller/MeshInterpolator.h create mode 100644 src/Shell/controller/MeshInterpolator.inl create mode 100644 src/Shell/engine/JoinMeshPoints.cpp create mode 100644 src/Shell/engine/JoinMeshPoints.h create mode 100644 src/Shell/engine/JoinMeshPoints.inl create mode 100644 src/Shell/forcefield/TriangularBendingFEMForceField.cpp create mode 100644 src/Shell/forcefield/TriangularBendingFEMForceField.h create mode 100644 src/Shell/forcefield/TriangularBendingFEMForceField.inl create mode 100644 src/Shell/initShell.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..830aff5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,65 @@ +cmake_minimum_required(VERSION 3.12) +project(Shell VERSION 1.0 LANGUAGES CXX) + +# Find and load CMake configuration of packages containing this plugin's dependencies +## Mandatory dependencies +find_package(SofaBase REQUIRED) # Dependency to SofaBaseVisual +## Optional dependencies +sofa_find_package(SofaGui) # Dependency to SofaGuiQt +sofa_find_package(Qt5 COMPONENTS Core) # Dependency to Qt5Core (needed for qt5_wrap_cpp) + +# List all files +set(SHELL_SRC_DIR src/Shell) +set(HEADER_FILES + ${SHELL_SRC_DIR}/config.h.in + ${SHELL_SRC_DIR}/controller/MeshChangedEvent.h + ${SHELL_SRC_DIR}/controller/MeshInterpolator.h + ${SHELL_SRC_DIR}/controller/MeshInterpolator.inl + ${SHELL_SRC_DIR}/engine/JoinMeshPoints.h + ${SHELL_SRC_DIR}/engine/JoinMeshPoints.inl + ${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.h + ${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.inl + ) +set(HEADER_FILES_TO_MOC + ) +set(SOURCE_FILES + ${SHELL_SRC_DIR}/initShell.cpp + ${SHELL_SRC_DIR}/controller/MeshChangedEvent.cpp + ${SHELL_SRC_DIR}/controller/MeshInterpolator.cpp + ${SHELL_SRC_DIR}/engine/JoinMeshPoints.cpp + ${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.cpp + ) +set(README_FILES + README.md + ) + +# Create the plugin library. +add_library(${PROJECT_NAME} SHARED ${HEADER_FILES_TO_MOC} ${MOCCED_HEADER_FILES} ${HEADER_FILES} ${SOURCE_FILES} ${README_FILES}) + +# Link the plugin library to its dependency(ies). +target_link_libraries(${PROJECT_NAME} SofaBaseVisual SofaUserInteraction) +# Link with the optional GUI dependencies. +if(Qt5Core_FOUND AND SofaGui_FOUND) + target_link_libraries(${PROJECT_NAME} SofaGuiQt) +endif() + +# Create package Config, Version & Target files. +# Deploy the headers, resources, scenes & examples. +# Set the plugin 'relocatable' if built within SOFA. +# --> see SofaMacros.cmake +sofa_create_package_with_targets( + PACKAGE_NAME ${PROJECT_NAME} + PACKAGE_VERSION ${PROJECT_VERSION} + TARGETS ${PROJECT_NAME} AUTO_SET_TARGET_PROPERTIES + INCLUDE_SOURCE_DIR "src" + INCLUDE_INSTALL_DIR ${PROJECT_NAME} + RELOCATABLE "plugins" + ) + +# Tests +# If SOFA_BUILD_TESTS exists and is OFF, then these tests will be auto-disabled +cmake_dependent_option(SHELL_BUILD_TESTS "Compile the automatic tests" ON "SOFA_BUILD_TESTS OR NOT DEFINED SOFA_BUILD_TESTS" OFF) +if(SHELL_BUILD_TESTS) + enable_testing() + add_subdirectory(Shell_test) +endif() diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..f59945c --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/README.md b/README.md index e495273..714aefa 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ -# Shell \ No newline at end of file +# Shell + +This plugin for SOFA implements mechanical models following the Shell method. + +![Shell example](doc/shell.png) + diff --git a/Shell.dox b/Shell.dox new file mode 100644 index 0000000..7055814 --- /dev/null +++ b/Shell.dox @@ -0,0 +1,5 @@ +/** @mainpage + +This plugin for SOFA implements mechanical models following the Shell method. + +*/ diff --git a/ShellConfig.cmake.in b/ShellConfig.cmake.in new file mode 100644 index 0000000..191b84e --- /dev/null +++ b/ShellConfig.cmake.in @@ -0,0 +1,22 @@ +# CMake package configuration file for the plugin @PROJECT_NAME@ + +@PACKAGE_GUARD@ +@PACKAGE_INIT@ + +set(SHELL_HAVE_SOFAGUI @SHELL_HAVE_SOFAGUI@) +set(SHELL_HAVE_QT5CORE @SHELL_HAVE_QT5CORE@) + +find_package(SofaBase QUIET REQUIRED) + +if(SHELL_HAVE_SOFAGUI) + find_package(SofaGui QUIET REQUIRED) +endif() +if(SHELL_HAVE_QT5CORE) + find_package(Qt5 COMPONENTS Core QUIET REQUIRED) +endif() + +if(NOT TARGET @PROJECT_NAME@) + include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +endif() + +check_required_components(@PROJECT_NAME@) diff --git a/ShellTest.html b/ShellTest.html new file mode 100644 index 0000000..f7df77d --- /dev/null +++ b/ShellTest.html @@ -0,0 +1,13 @@ + + + + + +Shell +

Shell

+
This example shows a simple simulation, as shown in the following image.
+More documentation can be found in doc/index.html
+
+
+
+ diff --git a/ShellTest.scn b/ShellTest.scn new file mode 100644 index 0000000..5c47232 --- /dev/null +++ b/ShellTest.scn @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Shell_test/CMakeLists.txt b/Shell_test/CMakeLists.txt new file mode 100644 index 0000000..e209795 --- /dev/null +++ b/Shell_test/CMakeLists.txt @@ -0,0 +1,15 @@ +# cmake_minimum_required(VERSION 3.12) + +# project(Shell_test) + +# # find_package(Shell REQUIRED) +# find_package(Threads REQUIRED) +# find_package(Sofa.Testing REQUIRED) + +# set(SOURCE_FILES +# ) + +# add_executable(${PROJECT_NAME} ${SOURCE_FILES}) +# target_link_libraries(${PROJECT_NAME} PUBLIC Sofa.Testing Shell Threads::Threads) + +# add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME}) diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..e69de29 diff --git a/doc/shell.png b/doc/shell.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a0004ff83469b86d5fb0c538ae9d7537c26099 GIT binary patch literal 436037 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

rD7MGQbwthF8f;pDOJ?@m9;v!kQqo~7K5 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%0AlPbW&uFwMVFQjkC>F6D6k2IG$_#D0re) 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 z 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¶yr`?ays86ztFMqL* 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 y%tiLp%iM64vi7{vP%4!QBebW;QDO< literal 0 HcmV?d00001 diff --git a/examples/sofapython3/TriangularBendingFEMForceField.py b/examples/sofapython3/TriangularBendingFEMForceField.py new file mode 100644 index 0000000..975aaf1 --- /dev/null +++ b/examples/sofapython3/TriangularBendingFEMForceField.py @@ -0,0 +1,23 @@ +def createScene(rootNode): + + rootNode.addObject('RequiredPlugin', name="Shell") + rootNode.gravity = [0, -98.1, 0] + rootNode.addObject('AttachBodyButtonSetting', stiffness=0.1) + rootNode.addObject('DefaultAnimationLoop') + + square = rootNode.addChild('Square') + square.addObject('EulerImplicitSolver') + square.addObject('SparseLDLSolver') + square.addObject('MeshOBJLoader', filename='mesh/square1.obj') + square.addObject('MeshTopology', src=square.MeshOBJLoader.getLinkPath()) + square.addObject('MechanicalObject', template='Rigid3') + square.addObject('UniformMass', totalMass=0.005) + square.addObject('BoxROI', box=[0, 0.9, -0.1, 1, 1, 0.1], drawBoxes=True) + square.addObject('FixedConstraint', indices=square.BoxROI.indices.getLinkPath()) + square.addObject('TriangularBendingFEMForceField', youngModulus=1.7e3, + poissonRatio=0.3, thickness=0.01) + + visu = square.addChild('Visu') + visu.addObject('OglModel', src=square.MeshTopology.getLinkPath()) + visu.addObject('IdentityMapping') + diff --git a/src/Shell/config.h.in b/src/Shell/config.h.in new file mode 100644 index 0000000..b0e62d0 --- /dev/null +++ b/src/Shell/config.h.in @@ -0,0 +1,34 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#include + +#define SHELL_VERSION @PROJECT_VERSION@ + +#ifdef SOFA_BUILD_SHELL +# define SOFA_TARGET @PROJECT_NAME@ +# define SOFA_SHELL_API SOFA_EXPORT_DYNAMIC_LIBRARY +#else +# define SOFA_SHELL_API SOFA_IMPORT_DYNAMIC_LIBRARY +#endif + diff --git a/src/Shell/controller/MeshChangedEvent.cpp b/src/Shell/controller/MeshChangedEvent.cpp new file mode 100644 index 0000000..9138366 --- /dev/null +++ b/src/Shell/controller/MeshChangedEvent.cpp @@ -0,0 +1,30 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ + +#include + +namespace shell::objectmodel +{ + +SOFA_EVENT_CPP( MeshChangedEvent ) + +} // namespace diff --git a/src/Shell/controller/MeshChangedEvent.h b/src/Shell/controller/MeshChangedEvent.h new file mode 100644 index 0000000..ffdcf38 --- /dev/null +++ b/src/Shell/controller/MeshChangedEvent.h @@ -0,0 +1,53 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#include +#include +#include +#include + +namespace shell::objectmodel +{ + +using namespace sofa::type; + +// Sent by MeshInterpolator when the mesh changes +class MeshChangedEvent : public sofa::core::objectmodel::Event +{ +public: + + SOFA_EVENT_H( MeshChangedEvent ) + + MeshChangedEvent(double _alpha) : alpha(_alpha) + {} + + ~MeshChangedEvent() {} + + double getAlpha() const { return alpha; } + +private: + + double alpha; // interpolation parameter +}; + +} // namespace diff --git a/src/Shell/controller/MeshInterpolator.cpp b/src/Shell/controller/MeshInterpolator.cpp new file mode 100644 index 0000000..154eac4 --- /dev/null +++ b/src/Shell/controller/MeshInterpolator.cpp @@ -0,0 +1,39 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#define SHELL_CONTROLLER_MESHINTERPOLATION_CPP + +#include +#include + +namespace shell::controller +{ + +using namespace sofa::defaulttype; + +// Register in the Factory +int MeshInterpolatorClass = sofa::core::RegisterObject("Performs linear interpolation between two meshes") +.add< MeshInterpolator >(true) // default template +; + +template class SOFA_SHELL_API MeshInterpolator; + +} // namespace diff --git a/src/Shell/controller/MeshInterpolator.h b/src/Shell/controller/MeshInterpolator.h new file mode 100644 index 0000000..14748fb --- /dev/null +++ b/src/Shell/controller/MeshInterpolator.h @@ -0,0 +1,82 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#include +#include +#include +#include + +#include + +namespace shell::controller +{ + +template +class MeshInterpolator : public sofa::component::controller::Controller +{ +public: + SOFA_CLASS(SOFA_TEMPLATE(MeshInterpolator,DataTypes), sofa::component::controller::Controller); + + typedef typename DataTypes::VecCoord VecCoord; + typedef typename DataTypes::VecDeriv VecDeriv; + typedef typename DataTypes::Coord Coord; + typedef typename DataTypes::Deriv Deriv; + typedef typename Coord::value_type Real; + typedef sofa::type::Vec<3,Real> Vec3; + +protected: + + MeshInterpolator(); + + virtual ~MeshInterpolator(); + +public: + + void init() override; + void reinit() override; + + sofa::Data f_startTime; + sofa::Data f_nbSteps; + sofa::Data f_increment; + + sofa::Data f_startPosition; + sofa::Data > f_startNormals; + sofa::Data f_endPosition; + sofa::Data > f_endNormals; + + sofa::Data f_position; + sofa::Data > f_normals; + + void onEndAnimationStep(const double dt) override; + + Real getInterpolationVar() { return alpha; } + +private: + + unsigned int stepCounter; + Real alpha; + + void interpolate(); +}; + +} // namespace diff --git a/src/Shell/controller/MeshInterpolator.inl b/src/Shell/controller/MeshInterpolator.inl new file mode 100644 index 0000000..ea02844 --- /dev/null +++ b/src/Shell/controller/MeshInterpolator.inl @@ -0,0 +1,191 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#include +#include + + +namespace shell::controller +{ + +template +MeshInterpolator::MeshInterpolator() +: f_startTime(initData(&f_startTime, (Real)0, "startTime", "Time when the interpolation starts")) +, f_nbSteps(initData(&f_nbSteps, (unsigned int)10, "nbSteps", "Perform a transition every nbStep steps")) +, f_increment(initData(&f_increment, (Real)0.05, "increment", "How quickly converge to the final positions")) +, f_startPosition(initData(&f_startPosition, "startPosition","Starting positions of the nodes")) +, f_startNormals(initData(&f_startNormals, "startNormals","Starting normals of the nodes")) +, f_endPosition(initData(&f_endPosition, "endPosition","Final positions of the nodes")) +, f_endNormals(initData(&f_endNormals, "endNormals","Final normals of the nodes")) +, f_position(initData(&f_position, "position","Interpolated positions of the nodes")) +, f_normals(initData(&f_normals, "normals","Interpolated normals of the nodes")) +, stepCounter(0) +{ +} + +template +MeshInterpolator::~MeshInterpolator() +{ +} + +template +void MeshInterpolator::init() +{ + reinit(); +} + +template +void MeshInterpolator::reinit() +{ + *this->f_listening.beginEdit() = true; + this->f_listening.endEdit(); + + unsigned int lenStart = f_startPosition.getValue().size(); + unsigned int lenEnd = f_endPosition.getValue().size(); + + // Check that the number of nodes is the same + if (lenStart != lenEnd) { + msg_warning() << "Number of start and end nodes has to be the same."; + if (lenStart > lenEnd) { + VecCoord &pts = *f_startPosition.beginEdit(); + pts.resize(lenEnd); + f_startPosition.endEdit(); + lenStart = lenEnd; + } else { + VecCoord &pts = *f_endPosition.beginEdit(); + pts.resize(lenStart); + f_endPosition.endEdit(); + } + } + + unsigned int lenStartN = f_startNormals.getValue().size(); + unsigned int lenEndN = f_endNormals.getValue().size(); + + // Check that the number of nodes is the same + if (((lenStartN != 0) || (lenEndN != 0)) && + ((lenStartN != lenEndN) || (lenStart != lenStartN))) { + msg_warning() << "Number of start normals, end normals and positions has to be the same."; + f_startNormals.beginEdit()->clear(); + f_startNormals.endEdit(); + f_endNormals.beginEdit()->clear(); + f_endNormals.endEdit(); + } + + // Check startTime + if (f_startTime.getValue() < 0.0) { + msg_warning() << "startTime has to be greater then or equal to 0."; + *f_startTime.beginEdit() = 0.0; + f_startTime.endEdit(); + } + + // Check nbSteps + if (f_nbSteps.getValue() == 0) { + msg_warning() << "nbSteps has to be nonzero."; + *f_nbSteps.beginEdit() = 1; + f_nbSteps.endEdit(); + } + + if ((f_increment.getValue() <= 0.0) || (f_increment.getValue() > 1.0)) { + msg_warning() << "Increment has to be geater than 0 and " + "smaller than or equall to 1."; + *f_increment.beginEdit() = 0.05; + f_increment.endEdit(); + } + + // XXX: does it make sense to reinit also internal state? + stepCounter = 0; + alpha = 0; + + // Start with starting point + *f_position.beginEdit() = f_startPosition.getValue(); + f_position.endEdit(); + + // Start with starting normals + *f_normals.beginEdit() = f_startNormals.getValue(); + f_normals.endEdit(); + +} + + +template +void MeshInterpolator::onEndAnimationStep(const double /*dt*/) +{ + if (alpha >= 1.0) + return; // Nothing more to do + + if (getContext()->getTime() < f_startTime.getValue()) + return; // Not yet ... + + stepCounter++; + + if (stepCounter < f_nbSteps.getValue()) + return; // Stay still for a few steps + + stepCounter = 0; + + // Increase the linear factor + alpha += f_increment.getValue(); + + // Update positions + interpolate(); + + // Send signal about change + shell::objectmodel::MeshChangedEvent mcEvent(alpha); + this->getContext()->propagateEvent(sofa::core::execparams::defaultInstance(), &mcEvent); +} + +template +void MeshInterpolator::interpolate() +{ + const VecCoord &startPt = f_startPosition.getValue(); + const VecCoord &endPt = f_endPosition.getValue(); + + const sofa::type::vector &startNorm = f_startNormals.getValue(); + const sofa::type::vector &endNorm = f_endNormals.getValue(); + + VecCoord &pt = *f_position.beginEdit(); + sofa::type::vector &norm = *f_normals.beginEdit(); + + for (unsigned int i=0; i 0) { + for (unsigned int i=0; i. * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#define SHELL_ENGINE_JOINMESHPOINTS_CPP + +#include +#include + +namespace shell::engine +{ + +int JoinMeshPointsClass = sofa::core::RegisterObject( + "Join two or more points of the mesh together while updating the topology" + " accordingly") + +.add< JoinMeshPoints >(true) // default template + +.add< JoinMeshPoints >() +.add< JoinMeshPoints >() +.add< JoinMeshPoints >() +.add< JoinMeshPoints >() +; + +template class SOFA_SHELL_API JoinMeshPoints; +template class SOFA_SHELL_API JoinMeshPoints; +template class SOFA_SHELL_API JoinMeshPoints; +template class SOFA_SHELL_API JoinMeshPoints; +template class SOFA_SHELL_API JoinMeshPoints; + +} // namespace diff --git a/src/Shell/engine/JoinMeshPoints.h b/src/Shell/engine/JoinMeshPoints.h new file mode 100644 index 0000000..114bd4f --- /dev/null +++ b/src/Shell/engine/JoinMeshPoints.h @@ -0,0 +1,132 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +namespace shell::engine +{ + +/** + * @brief Joins two or more points of the mesh together and updates the + * topology accordingly. + * + * @tparam DataTypes Associated data type. + */ +template +class JoinMeshPoints : public sofa::core::DataEngine +{ +public: + SOFA_CLASS(SOFA_TEMPLATE(JoinMeshPoints,DataTypes), sofa::core::DataEngine); + + typedef typename DataTypes::VecCoord VecCoord; + typedef typename DataTypes::Coord Coord; + typedef typename Coord::value_type Real; + + typedef sofa::type::Vec<3,Real> Vec3; + typedef unsigned int Index; + +protected: + JoinMeshPoints(); + + virtual ~JoinMeshPoints(); + +public: + + void init() override; + void reinit() override; + void doUpdate() override; + + // TODO: add methods to find out the inverse mappings + + /** + * @brief Get index of a node in input topology based on the triangle and + * node ID in output topology. + * + * @param triangleId Triangle from output topology. + * @param nodeId Node in output topology. + * + * @return Node from input topology. + */ + Index getSrcNodeFromTri(Index triangleId, Index nodeId) { + if (triangleId < f_output_triangles.getValue().size()) { + if (nodeId < f_output_position.getValue().size()) { + const std::map &n2n = imapTriNode2Node[triangleId]; + std::map::const_iterator iter = n2n.find(nodeId); + if (iter != n2n.end()) { + return iter->second; + } else { + // Not a joined point + return imapNode2Node[nodeId]; + } + } + } + // Invalid indices + msg_error() << "Requested invalid triangle " << triangleId << " and node " << nodeId; + return 0; + } + + + // Data + + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_input_joinPoints; + + sofa::Data f_input_position; + sofa::Data< sofa::type::vector > f_input_normals; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_input_edges; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_input_triangles; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_input_quads; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_input_tetrahedra; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_input_hexahedra; + + sofa::Data f_output_position; + sofa::Data< sofa::type::vector > f_output_normals; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_output_edges; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_output_triangles; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_output_quads; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_output_tetrahedra; + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > f_output_hexahedra; + sofa::Data f_output_mergedPosition; + sofa::Data< sofa::type::vector > f_output_mergedNormals; + +private: + + template void createElements( + std::map mapInIn, + sofa::type::vector mapInOut, + const sofa::Data< sofa::type::vector< sofa::type::fixed_array > > &inElements, + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > &outElements); + + // Inverse mappings: from output to input topology + // ... node -> node (only for nodes that are not joined and thus have one to one mapping) + std::map imapNode2Node; + // ... triangle + node -> node + std::map > imapTriNode2Node; +}; + +} // namespace diff --git a/src/Shell/engine/JoinMeshPoints.inl b/src/Shell/engine/JoinMeshPoints.inl new file mode 100644 index 0000000..e0611df --- /dev/null +++ b/src/Shell/engine/JoinMeshPoints.inl @@ -0,0 +1,272 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#include + +namespace shell::engine +{ + +using namespace sofa::type; +using namespace sofa::core::objectmodel; + +template +JoinMeshPoints::JoinMeshPoints() +: f_input_joinPoints(initData(&f_input_joinPoints,"joinPoints","Which points to join")) + , f_input_position(initData(&f_input_position,"position","Input Vertices")) + , f_input_normals(initData(&f_input_normals,"normals","Input Normals")) + , f_input_edges(initData(&f_input_edges,"edges","Input Edges")) + , f_input_triangles(initData(&f_input_triangles,"triangles","Input Triangles")) + , f_input_quads(initData(&f_input_quads,"quads","Input Quads")) + , f_input_tetrahedra(initData(&f_input_tetrahedra,"tetrahedra","Input Tetrahedra")) + , f_input_hexahedra(initData(&f_input_hexahedra,"hexahedra","Input Hexahedra")) + + , f_output_position(initData(&f_output_position,"joinedPosition","Output Vertices of the joined mesh")) + , f_output_normals(initData(&f_output_normals,"joinedNormals","Output Normals of the joined mesh")) + , f_output_edges(initData(&f_output_edges,"joinedEdges","Output Edges of the joined mesh")) + , f_output_triangles(initData(&f_output_triangles,"joinedTriangles","Output Triangles of the joined mesh")) + , f_output_quads(initData(&f_output_quads,"joinedQuads","Output Quads of the joined mesh")) + , f_output_tetrahedra(initData(&f_output_tetrahedra,"joinTetrahedra","Output Tetrahedra of the joined mesh")) + , f_output_hexahedra(initData(&f_output_hexahedra,"joinHexahedra","Output Hexahedra of the joined mesh")) + , f_output_mergedPosition(initData(&f_output_mergedPosition,"mergedPosition","Positions of the merged Vertices of the input topology")) + , f_output_mergedNormals(initData(&f_output_mergedNormals,"mergedNormals","Normals of the merged Vertices of the input topology")) +{ +} + +template +JoinMeshPoints::~JoinMeshPoints() +{ +} + +template +void JoinMeshPoints::init() +{ + addInput(&f_input_joinPoints); + + addInput(&f_input_position); + addInput(&f_input_normals); + addInput(&f_input_edges); + addInput(&f_input_triangles); + addInput(&f_input_quads); + addInput(&f_input_tetrahedra); + addInput(&f_input_hexahedra); + + addOutput(&f_output_position); + addOutput(&f_output_normals); + addOutput(&f_output_edges); + addOutput(&f_output_triangles); + addOutput(&f_output_quads); + addOutput(&f_output_tetrahedra); + addOutput(&f_output_hexahedra); + + addOutput(&f_output_mergedPosition); + addOutput(&f_output_mergedNormals); + + setDirtyValue(); +} + +template +void JoinMeshPoints::reinit() +{ + update(); +} + +template +void JoinMeshPoints::doUpdate() +{ + + const sofa::type::vector< sofa::type::fixed_array >& inJP = f_input_joinPoints.getValue(); + const VecCoord& inPt = f_input_position.getValue(); + const sofa::type::vector& inNorm = f_input_normals.getValue(); + + VecCoord& outPt = *f_output_position.beginEdit(); + sofa::type::vector& outNorm = *f_output_normals.beginEdit(); + VecCoord& outMPt = *f_output_mergedPosition.beginEdit(); + sofa::type::vector& outMNorm = *f_output_mergedNormals.beginEdit(); + outPt.clear(); + outNorm.clear(); + outMPt.resize(inPt.size()); + outMNorm.resize(inPt.size()); + + bool bHasNormals = false; + if (inPt.size() == inNorm.size()) { + bHasNormals = true; + } else if (inNorm.size() != 0) { + msg_warning() << "Normal count does not match node count! Ignoring normals."; + } + + // Map analogy to the value of f_input_joinPoints. It maps index of a node + // from input array to index into output array. + std::map mapInIn; + + // Add items so that if i maps to j then i > j + for (Index i=0; i::iterator iter = + mapInIn.find(from); + if (iter != mapInIn.end()) { + if (iter->second == to) { + continue; + } else if (iter->second < to) { + // Reassign the current item and keep the old one untact + from = to; + to = iter->second; + } else { + // Reassign previous item + Index newFrom = iter->second; + Index newTo = to; + mapInIn.erase(iter); + mapInIn[newFrom] = newTo; + // ... and add the new item + } + } + mapInIn[from] = to; + } + + // Traverse the map to find the smallest indices + for(std::map::iterator iter = mapInIn.begin(); + iter != mapInIn.end(); iter++) { + Index end = iter->second; + do { + std::map::const_iterator iter = + mapInIn.find(end); + if (iter != mapInIn.end()) { + end = iter->second; + } else { + break; + } + } while (1); + iter->second = end; + } + + // Create output list + sofa::type::vector mapInOut; + mapInOut.resize(inPt.size()); + + for (Index i=0, newId=0; i::const_iterator iter = + mapInIn.find(i); + if (iter == mapInIn.end()) { + outPt.push_back(inPt[i]); + mapInOut[i] = newId; + imapNode2Node[newId] = i; + newId++; + // Take the position + outMPt[i] = inPt[i]; + outMNorm[i] = inNorm[i]; + } else { + mapInOut[i] = mapInOut[iter->second]; + //imapNode2Node[ mapInOut[iter->second] ] = i; + // Take the position of the point we join with + outMPt[i] = inPt[iter->second]; + outMNorm[i] = inNorm[iter->second]; + } + } + + // Compute new normals by averaging the normals of joined nodes. + if (bHasNormals) { + outNorm.resize(outPt.size()); + for (Index i=0; i(mapInIn, mapInOut, f_input_edges, f_output_edges); + createElements<3>(mapInIn, mapInOut, f_input_triangles, f_output_triangles); + createElements<4>(mapInIn, mapInOut, f_input_quads, f_output_quads); + createElements<4>(mapInIn, mapInOut, f_input_tetrahedra, f_output_tetrahedra); + createElements<8>(mapInIn, mapInOut, f_input_hexahedra, f_output_hexahedra); +} + +template +template +void JoinMeshPoints::createElements( + std::map mapInIn, + sofa::type::vector mapInOut, + const sofa::Data< sofa::type::vector< sofa::type::fixed_array > > &inElements, + sofa::Data< sofa::type::vector< sofa::type::fixed_array > > &outElements) +{ + const sofa::type::vector< sofa::type::fixed_array >& inEle = inElements.getValue(); + + sofa::type::vector< sofa::type::fixed_array >& outEle = *outElements.beginEdit(); + outEle.resize(inEle.size()); + + for (Index i= 0; i& out = outEle[i]; + for (Index j=0; j::const_iterator iter = + mapInIn.find(id); + + bool bJoined = false; + // In -> In mapping (joining nodes) + if (iter != mapInIn.end()) { + id = iter->second; + bJoined = true; + } + + // In -> Out mapping (reindexing nodes) + if (id < f_input_position.getValue().size()) { + out[j] = mapInOut[id]; + } else { + // Invalid node ID, what now? + msg_warning() << "Invalid node ID in elements! " << + id << " is not a valid node ID!" ; + out[j] = 0; + } + + if (N == 3) { + if (bJoined) + imapTriNode2Node[i][out[j]] = inEle[i][j]; + } + + } + } + + outElements.endEdit(); +} + +} // namespace diff --git a/src/Shell/forcefield/TriangularBendingFEMForceField.cpp b/src/Shell/forcefield/TriangularBendingFEMForceField.cpp new file mode 100644 index 0000000..fd1cebf --- /dev/null +++ b/src/Shell/forcefield/TriangularBendingFEMForceField.cpp @@ -0,0 +1,45 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#define SHELL_FORCEFIELD_TRIANGULARBENDINGFEMFORCEFIELD_CPP + +#include +#include +#include +#include + +#include +#include + + +namespace shell::forcefield +{ + +using namespace sofa::defaulttype; + +// Register in the Factory +int TriangularBendingFEMForceFieldClass = sofa::core::RegisterObject("Triangular finite elements with bending") +.add< TriangularBendingFEMForceField >() +; + +template class SOFA_SHELL_API TriangularBendingFEMForceField; + +} // namespace diff --git a/src/Shell/forcefield/TriangularBendingFEMForceField.h b/src/Shell/forcefield/TriangularBendingFEMForceField.h new file mode 100644 index 0000000..258a586 --- /dev/null +++ b/src/Shell/forcefield/TriangularBendingFEMForceField.h @@ -0,0 +1,300 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#if !defined(__GNUC__) || (__GNUC__ > 3 || (_GNUC__ == 3 && __GNUC_MINOR__ > 3)) +#pragma once +#endif + + +#include +#include +#include + +#include +#include + +#include +#include + + +namespace shell::forcefield +{ + +using namespace sofa::type; +using sofa::type::vector; +using namespace sofa::core::topology; +using namespace sofa::core::behavior; + +/// This class can be overridden if needed for additionnal storage within template specializations. +template +class TriangularBendingFEMForceFieldInternalData +{ +public: +}; + +template +class TriangularBendingFEMForceField : public sofa::core::behavior::ForceField +{ + public: + SOFA_CLASS(SOFA_TEMPLATE(TriangularBendingFEMForceField,DataTypes), SOFA_TEMPLATE(sofa::core::behavior::ForceField,DataTypes)); + + typedef sofa::core::behavior::ForceField Inherited; + typedef typename DataTypes::VecCoord VecCoord; + typedef typename DataTypes::VecDeriv VecDeriv; + + typedef typename DataTypes::Coord Coord; + typedef typename DataTypes::Deriv Deriv; + typedef typename Coord::value_type Real; + + typedef Vec<3,Real> Vec3; + typedef Vec<2,Real> Vec2; + typedef sofa::type::Quat Quat; + + typedef sofa::Data DataVecCoord; + typedef sofa::Data DataVecDeriv; + + typedef sofa::defaulttype::Vec3Types::VecCoord VecCoordHigh; + + typedef sofa::Index Index; + typedef sofa::core::topology::BaseMeshTopology::Triangle Triangle; + typedef sofa::core::topology::BaseMeshTopology::SeqTriangles SeqTriangles; + + protected: + + typedef Vec<6, Real> Displacement; ///< the displacement vector + typedef Vec<9, Real> DisplacementBending; ///< the displacement vector for bending + typedef Mat<3, 3, Real> MaterialStiffness; ///< the matrix of material stiffness + typedef Mat<6, 3, Real> StrainDisplacement; ///< the strain-displacement matrix + typedef Mat<3, 9, Real> StrainDisplacementBending; + typedef Mat<3, 3, Real > Transformation; ///< matrix for rigid transformations like rotations + typedef Mat<6, 6, Real> StiffnessMatrix; + typedef Mat<9, 9, Real> StiffnessMatrixBending; + typedef Mat<18, 18, Real> StiffnessMatrixGlobalSpace; + + sofa::core::topology::BaseMeshTopology* _topology; + +public: + + class TriangleInformation + { + public: + + // position of B, C vertices in local (in-plane) coordinates (A is naturaly [0,0]) + sofa::type::fixed_array restLocalPositions; + sofa::type::fixed_array restLocalOrientations; + + /// material stiffness matrices of each tetrahedron + MaterialStiffness materialMatrix; + // the strain-displacement matrices vector + StrainDisplacement strainDisplacementMatrix; + // the strain-displacement matrices vector (at Gauss points) + StrainDisplacementBending strainDisplacementMatrix1; + StrainDisplacementBending strainDisplacementMatrix2; + StrainDisplacementBending strainDisplacementMatrix3; + // Indices of each vertex + Index a, b, c; + // Indices in rest shape topology. Normaly is the same as a, b, + // c, but is different if topologyMapper is set. + Index a0, b0, c0; + // Local coordinates + Vec3 localB, localC; + // Transformation rotation; + Quat Qframe; + // Stiffness matrix K = J * M * Jt + StiffnessMatrix stiffnessMatrix; + // Stiffness matrix for bending K = Jt * M * J + StiffnessMatrixBending stiffnessMatrixBending; + + // Surface + Real area; + // Variables needed for drawing the shell + Vec<9, Real> u; // displacement vector + Mat<9, 9, Real> invC; // inverse of C (used in bending mode only) + Vec<9, Real> coefficients; // coefficients Ci computed from tinfo->invC * (tinfo->u + tinfo->u_flat) + Vec <9, Real> u_rest; // difference between the initial position and the flate position to allow the use of an initial deformed shape + + TriangleInformation() { } + + /// Output stream + inline friend std::ostream& operator<< ( std::ostream& os, const TriangleInformation& /*ti*/ ) + { + return os; + } + + /// Input stream + inline friend std::istream& operator>> ( std::istream& in, TriangleInformation& /*ti*/ ) + { + return in; + } + }; + + class TRQSTriangleHandler : public TopologyDataHandler > + { + public: + TRQSTriangleHandler(TriangularBendingFEMForceField* _ff, TriangleData >* _data) : TopologyDataHandler >(_data), ff(_ff) {} + + void applyCreateFunction(unsigned int triangleIndex, TriangleInformation& , + const Triangle & t, + const sofa::type::vector< unsigned int > &, + const sofa::type::vector< double > &); + + protected: + TriangularBendingFEMForceField* ff; + }; + + TriangularBendingFEMForceField(); + + virtual ~TriangularBendingFEMForceField(); + void init() override; + void reinit() override; + void addForce(const sofa::core::MechanicalParams* /*mparams*/, DataVecDeriv& dataF, const DataVecCoord& dataX, const DataVecDeriv& /*dataV*/ ) override ; + void addDForce(const sofa::core::MechanicalParams* /*mparams*/, DataVecDeriv& datadF, const DataVecDeriv& datadX ) override ; + void addKToMatrix(const sofa::core::MechanicalParams* mparams, const sofa::core::behavior::MultiMatrixAccessor* matrix) override; + void addBToMatrix(sofa::linearalgebra::BaseMatrix * /*mat*/, double /*bFact*/, unsigned int &/*offset*/) override; + double getPotentialEnergy(const VecCoord& x) const; + void handleTopologyChange() override; + + SReal getPotentialEnergy(const sofa::core::MechanicalParams* /*mparams*/, const DataVecCoord& /*x*/) const override { return 0; } + + void draw(const sofa::core::visual::VisualParams* vparams) override; + + sofa::core::topology::BaseMeshTopology* getTopology() {return _topology;} + TriangleData< sofa::type::vector >& getTriangleInfo() {return triangleInfo;} + + sofa::Data d_poisson; + sofa::Data d_young; + sofa::Data d_bending; + sofa::Data d_thickness; + sofa::Data d_membraneRatio; + sofa::Data d_bendingRatio; + sofa::Data d_refineMesh; + sofa::Data d_iterations; + sofa::SingleLink, + sofa::core::topology::BaseMeshTopology, + sofa::BaseLink::FLAG_STOREPATH|sofa::BaseLink::FLAG_STRONGLINK> l_targetTopology; + VecCoordHigh m_targetVertices; + SeqTriangles m_targetTriangles; + + // Allow transition between rest shapes + sofa::SingleLink, + shell::controller::MeshInterpolator, + sofa::BaseLink::FLAG_STOREPATH|sofa::BaseLink::FLAG_STRONGLINK> l_restShape; + + // Indirect rest shape indexing (e.g. for "joining" two meshes) + bool m_mapTopology; + sofa::SingleLink, + shell::engine::JoinMeshPoints, + sofa::BaseLink::FLAG_STOREPATH|sofa::BaseLink::FLAG_STRONGLINK> l_topologyMapper; + + + sofa::core::objectmodel::DataFileName m_exportFilename; + sofa::Data d_exportEveryNbSteps; + sofa::Data d_exportAtBegin; + sofa::Data d_exportAtEnd; + unsigned int m_stepCounter; + + TRQSTriangleHandler* m_triangleHandler; + +protected : + + TriangleData< sofa::type::vector > triangleInfo; + + void computeDisplacement(Displacement &Disp, const VecCoord &x, const Index elementIndex); + void computeDisplacementBending(DisplacementBending &Disp, const VecCoord &x, const Index elementIndex); + void computeStrainDisplacementMatrix(StrainDisplacement &J, const Index elementIndex, const Vec3& b, const Vec3& c); + void computeStrainDisplacementMatrixBending(TriangleInformation *tinfo, const Vec3& b, const Vec3& c); + void tensorFlatPlate(Mat<3, 9, Real>& D, const Vec3 &P); + void computeStiffnessMatrix(StiffnessMatrix &K, const StrainDisplacement &J, const MaterialStiffness &M); + void computeStiffnessMatrixBending(StiffnessMatrixBending &K, TriangleInformation *tinfo); + void computeForce(Displacement &F, const Displacement& D, const Index elementIndex); + void computeForceBending(DisplacementBending &F, const DisplacementBending& D, const Index elementIndex); + + static void TRQSTriangleCreationFunction (unsigned int , void* , TriangleInformation &, const Triangle& , const sofa::type::vector< unsigned int > &, const sofa::type::vector< double >&); + + /// f += Kx where K is the stiffness matrix and x a displacement + virtual void applyStiffness(VecDeriv& f, const VecDeriv& dx, const Index elementIndex, const double kFactor); + virtual void computeMaterialStiffness(const int i); + + void initTriangleOnce(const int i, const Index&a, const Index&b, const Index&c); + void initTriangle(const int i); + void computeRotation(Quat &Qframe, const VecCoord &p, const Index &a, const Index &b, const Index &c); + void accumulateForce(VecDeriv& f, const VecCoord & p, const Index elementIndex); + + void convertStiffnessMatrixToGlobalSpace(StiffnessMatrixGlobalSpace &K_gs, TriangleInformation *tinfo); + + void refineCoarseMeshToTarget(void); + void subdivide(const Vec3& a, const Vec3& b, const Vec3& c, sofa::type::vector &subVertices, SeqTriangles &subTriangles); + void addVertexAndFindIndex(sofa::type::vector &subVertices, const Vec3 &vertex, int &index); + void movePoint(Vec3& pointToMove); + void findClosestGravityPoints(const Vec3& point, sofa::type::vector& listClosestPoints); + + void handleEvent(sofa::core::objectmodel::Event *event) override; + + + Quat qDiff(Quat a, const Quat& b) + { + // If the axes are not oriented in the same direction, flip the axis and angle of a to get the same convention than b + if (a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]<0) + { + a[0] = -a[0]; + a[1] = -a[1]; + a[2] = -a[2]; + a[3] = -a[3]; + } + Quat q = b.inverse() * a; + return q; + } + + Quat qDiffZ(const Quat& vertex, const Quat& Qframe) + { + // dQ is the quaternion that embodies the rotation between the z axis of the vertex and the z axis of the local triangle's frame (in local space) + Quat dQ; + + // u = z axis of the triangle's frame + Vec3d u(0,0,1); + + // v = z axis of the vertex's frame is expressed into world space + Vec3d v = vertex.rotate(Vec3d(0.0, 0.0, 1.0)); + // v0 = v expressed into local triangle's frame + Vec3d v0 = Qframe.rotate(v); + + // Axis of rotation between the 2 vectors u and v lies into the plan of the 2 vectors + Vec3d axis = cross(u, v0); + // Shortest angle between the 2 vectors + double angle = acos(dot(u, v0)); + + // Quaternion associated to this axis and this angle + if (fabs(angle)>1e-6) + { + dQ.axisToQuat(axis,angle); + } + else + { + dQ = Quat(0,0,0,1); + } + + return dQ; + } +}; + +} // namespace diff --git a/src/Shell/forcefield/TriangularBendingFEMForceField.inl b/src/Shell/forcefield/TriangularBendingFEMForceField.inl new file mode 100644 index 0000000..199d7ea --- /dev/null +++ b/src/Shell/forcefield/TriangularBendingFEMForceField.inl @@ -0,0 +1,1265 @@ +/****************************************************************************** +* SOFA, Simulation Open-Framework Architecture * +* (c) 2006 INRIA, USTL, UJF, CNRS, MGH * +* * +* This program is free software; you can redistribute it and/or modify it * +* under the terms of the GNU Lesser General Public License as published by * +* the Free Software Foundation; either version 2.1 of the License, or (at * +* your option) any later version. * +* * +* This program is distributed in the hope that it will be useful, but WITHOUT * +* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * +* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * +* for more details. * +* * +* You should have received a copy of the GNU Lesser General Public License * +* along with this program. If not, see . * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#pragma once + +#include +#include +#include +#include +#include // for reading the file +#include //for debugging +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#ifdef _WIN32 +#include +#endif + +namespace shell::forcefield +{ + using namespace sofa::type; + using namespace sofa::component::topology; + + + +// -------------------------------------------------------------------------------------- +// --- Topology Creation/Destruction functions +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::TRQSTriangleHandler::applyCreateFunction(unsigned int triangleIndex, TriangleInformation &, const Triangle &t, const sofa::type::vector &, const sofa::type::vector &) +{ + if (ff) + { + ff->initTriangleOnce(triangleIndex, t[0], t[1], t[2]); + ff->initTriangle(triangleIndex); + ff->computeMaterialStiffness(triangleIndex); + } +} + + +// -------------------------------------------------------------------------------------- +// --- +// -------------------------------------------------------------------------------------- +template +TriangularBendingFEMForceField::TriangularBendingFEMForceField() +: d_poisson(initData(&d_poisson,(Real)0.45,"poissonRatio","Poisson ratio in Hooke's law")) +, d_young(initData(&d_young,(Real)3000.,"youngModulus","Young modulus in Hooke's law")) +, d_bending(initData(&d_bending,false,"bending","Adds bending")) +, d_thickness(initData(&d_thickness,(Real)0.1,"thickness","Thickness of the plates")) +, d_membraneRatio(initData(&d_membraneRatio,(Real)1.0,"membraneRatio","In plane forces ratio")) +, d_bendingRatio(initData(&d_bendingRatio,(Real)1.0,"bendingRatio","Bending forces ratio")) +, d_refineMesh(initData(&d_refineMesh, false, "refineMesh","Hierarchical refinement of the mesh")) +, d_iterations(initData(&d_iterations,(int)0,"iterations","Iterations for refinement")) +, l_targetTopology(initLink("targetTopology","Targeted high resolution topology")) +, l_restShape(initLink("restShape","MeshInterpolator component for variable rest shape")) +, m_mapTopology(false) +, l_topologyMapper(initLink("topologyMapper","Component supplying different topology for the rest shape")) +, m_exportFilename(initData(&m_exportFilename, "exportFilename", "file name to export coefficients into")) +, d_exportEveryNbSteps(initData(&d_exportEveryNbSteps, (unsigned int)0, "exportEveryNumberOfSteps", "export file only at specified number of steps (0=disable)")) +, d_exportAtBegin(initData(&d_exportAtBegin, false, "exportAtBegin", "export file at the initialization")) +, d_exportAtEnd(initData(&d_exportAtEnd, false, "exportAtEnd", "export file when the simulation is finished")) +, m_stepCounter(0) +, triangleInfo(initData(&triangleInfo, "triangleInfo", "Internal triangle data")) +{ + m_triangleHandler = new TRQSTriangleHandler(this, &triangleInfo); +} + +// -------------------------------------------------------------------------------------- +// --- +// -------------------------------------------------------------------------------------- +template void TriangularBendingFEMForceField::handleTopologyChange() +{ +} + +// -------------------------------------------------------------------------------------- +// --- +// -------------------------------------------------------------------------------------- +template +TriangularBendingFEMForceField::~TriangularBendingFEMForceField() +{ + if(m_triangleHandler) delete m_triangleHandler; +} + +// -------------------------------------------------------------------------------------- +// --- Initialization stage +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::init() +{ + this->d_componentState.setValue(sofa::core::objectmodel::ComponentState::Valid); + this->Inherited::init(); + + _topology = this->getContext()->getMeshTopology(); + + if (_topology->getNbTriangles()==0) + { + msg_error() << "TriangularBendingFEMForceField: object must have a Triangular Set Topology."; + this->d_componentState.setValue(sofa::core::objectmodel::ComponentState::Invalid); + return; + } + + // Create specific handler for TriangleData + triangleInfo.createTopologyHandler(_topology); + + reinit(); + + if (d_refineMesh.getValue()) + { + sofa::core::topology::BaseMeshTopology* _topologyTarget = l_targetTopology.get(); + + if (_topologyTarget) + { + MechanicalState* mStateTarget = dynamic_cast*> (_topologyTarget->getContext()->getMechanicalState()); + if (mStateTarget) + { + m_targetTriangles = _topologyTarget->getTriangles(); + m_targetVertices = mStateTarget->read(sofa::core::ConstVecCoordId::position())->getValue(); + } + else + { + msg_warning() << "No mechanical state for target high resolution topology" ; + return; + } + } + else + { + msg_warning() << "No target high resolution mesh found"; + return; + } + + // Run procedure for shell remeshing + refineCoarseMeshToTarget(); + } +} + + +template +void TriangularBendingFEMForceField::refineCoarseMeshToTarget(void) +{ + msg_info() << "Refining a mesh of " << _topology->getNbTriangles() << " triangles towards a target surface of " << m_targetTriangles.size() << " triangles."; + + // List of vertices + const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + // List of triangles + const SeqTriangles triangles = _topology->getTriangles(); + + // Creates new mesh + sofa::type::vector subVertices; + SeqTriangles subTriangles; + + // Initialises list of subvertices and triangles + for (unsigned int i=0; i +void TriangularBendingFEMForceField::subdivide(const Vec3& a, const Vec3& b, const Vec3& c, sofa::type::vector &subVertices, SeqTriangles &subTriangles) +{ + // Global coordinates + Vec3 mAB, mAC, mBC; + mAB = (a+b)/2; + mAC = (a+c)/2; + mBC = (b+c)/2; + + // Adds vertex if we deal with a new point + int indexAB, indexAC, indexBC; + addVertexAndFindIndex(subVertices, mAB, indexAB); + addVertexAndFindIndex(subVertices, mAC, indexAC); + addVertexAndFindIndex(subVertices, mBC, indexBC); + + // Finds index of the 3 original vertices + int indexA, indexB, indexC; + addVertexAndFindIndex(subVertices, a, indexA); + addVertexAndFindIndex(subVertices, b, indexB); + addVertexAndFindIndex(subVertices, c, indexC); + + // Adds the 4 subdivided triangles to the list + subTriangles.push_back(Triangle(indexA, indexAB, indexAC)); + subTriangles.push_back(Triangle(indexAB, indexB, indexBC)); + subTriangles.push_back(Triangle(indexAC, indexBC, indexC)); + subTriangles.push_back(Triangle(indexBC, indexAC, indexAB)); +} + + +// -------------------------------------------------------------------------------------- +// Adds a vertex if it is not already in the list +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::addVertexAndFindIndex(sofa::type::vector &subVertices, const Vec3 &vertex, int &index) +{ + bool alreadyHere = false; + + for (unsigned int v=0; v +void TriangularBendingFEMForceField::movePoint(Vec3& pointToMove) +{ + sofa::type::vector listClosestPoints; + findClosestGravityPoints(pointToMove, listClosestPoints); + pointToMove = (listClosestPoints[0]+listClosestPoints[1]+listClosestPoints[2])/3; +} + + +// -------------------------------------------------------------------------------------- +// Finds the list of the 3 closest gravity points of targeted surface +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::findClosestGravityPoints(const Vec3& point, sofa::type::vector& listClosestPoints) +{ + std::multimap closestTrianglesData; + + for (unsigned int t=0; t(1.0,Vec3()); + closestTrianglesData.insert( std::make_pair(distance,G)); + } + + // Returns the 3 closest points + int count = 0; + typename std::multimap::iterator it; + for (it = closestTrianglesData.begin(); it!=closestTrianglesData.end(); it++) + { + if (count < 3) + { + listClosestPoints.push_back((*it).second); + } + count++; + } + +} + + +// -------------------------------------------------------------------------------------- +// --- Re-initialization (called when we change a parameter through the GUI) +// -------------------------------------------------------------------------------------- +template void TriangularBendingFEMForceField::reinit() +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + + if (l_topologyMapper.get() != nullptr) { + + shell::engine::JoinMeshPoints* jmp = l_topologyMapper.get(); + if (jmp->f_output_triangles.getValue().size() == 0) + { + msg_warning() << "Mapped topology must be triangular. No triangles found." ; + } else { + m_mapTopology = true; + } + } + + if (l_restShape.get() != nullptr) { + // Listen for MeshChangedEvent + *this->f_listening.beginEdit() = true; + this->f_listening.endEdit(); + + // Check if there is same number of nodes + if (!m_mapTopology) { + if (l_restShape.get()->f_position.getValue().size() != + this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue().size()) { + msg_warning() << "Different number of nodes in rest shape and mechanical state." ; + } + } else if (l_restShape.get()->f_position.getValue().size() != + l_topologyMapper.get()->f_input_position.getValue().size()) { + msg_warning() << "Different number of nodes in rest shape and (original) mapped topology." ; + } + } + + /// Prepare to store info in the triangle array + triangleInf.resize(_topology->getNbTriangles()); + + for (sofa::Index i=0; i<_topology->getNbTriangles(); ++i) + { + m_triangleHandler->applyCreateFunction(i, triangleInf[i], _topology->getTriangle(i), (const sofa::type::vector< unsigned int > )0, (const sofa::type::vector< double >)0); + } + + triangleInfo.endEdit(); +} + + +// -------------------------------------------------------------------------------------- +// --- +// -------------------------------------------------------------------------------------- +template +double TriangularBendingFEMForceField::getPotentialEnergy(const VecCoord& /*x*/) const +{ + msg_warning() << "TriangularBendingFEMForceField::getPotentialEnergy is not implemented."; + return 0; +} + + +// -------------------------------------------------------------------------------------- +// Computes the quaternion that embodies the rotation from triangle to world +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeRotation(Quat& Qframe, const VecCoord &x, const Index &a, const Index &b, const Index &c) +{ + // First vector on first edge + // Second vector in the plane of the two first edges + // Third vector orthogonal to first and second + + Vec3 edgex = x[b].getCenter() - x[a].getCenter(); + edgex.normalize(); + + Vec3 edgey = x[c].getCenter() - x[a].getCenter(); + edgey.normalize(); + + Vec3 edgez; + edgez = cross(edgex, edgey); + edgez.normalize(); + + edgey = cross(edgez, edgex); + edgey.normalize(); + + Transformation R; + R[0][0] = edgex[0]; + R[0][1] = edgex[1]; + R[0][2] = edgex[2]; + R[1][0] = edgey[0]; + R[1][1] = edgey[1]; + R[1][2] = edgey[2]; + R[2][0] = edgez[0]; + R[2][1] = edgez[1]; + R[2][2] = edgez[2]; + + Qframe.fromMatrix(R); +} + + +// -------------------------------------------------------------------------------------- +// --- Initialization of a triangle, is called *only* once +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::initTriangleOnce(const int i, const Index&a, const Index&b, const Index&c) +{ + + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[i]; + + // Store indices of each vertex + tinfo->a = a; + tinfo->b = b; + tinfo->c = c; + + Index a0=a, b0=b, c0=c; + if (m_mapTopology) { + shell::engine::JoinMeshPoints* jmp = l_topologyMapper.get(); + + // Get indices in original topology + a0 = jmp->getSrcNodeFromTri(i, a0); + b0 = jmp->getSrcNodeFromTri(i, b0); + c0 = jmp->getSrcNodeFromTri(i, c0); + } + + tinfo->a0 = a0; + tinfo->b0 = b0; + tinfo->c0 = c0; + + triangleInfo.endEdit(); +} + +// -------------------------------------------------------------------------------------- +// --- Initialization of a triangle. Can be called more than once if there is a +// --- changing rest shape. +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::initTriangle(const int i) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[i]; + + const Index a = tinfo->a; + const Index b = tinfo->b; + const Index c = tinfo->c; + + const Index a0 = tinfo->a0; + const Index b0 = tinfo->b0; + const Index c0 = tinfo->c0; + + // Gets vertices of rest and initial positions respectively + const VecCoord& x0 = (l_restShape.get() != nullptr) + // if having changing rest shape take it + ? l_restShape.get()->f_position.getValue() + : (m_mapTopology + // if rest shape is fixed but we have mapped topology use it + ? l_topologyMapper.get()->f_input_position.getValue() + // otherwise just take rest shape in mechanical state + : this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue() + ); + const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + + // Rotation from triangle to world at rest and initial positions (respectively) + Quat Qframe0, Qframe; + computeRotation(Qframe0, x0, a0, b0, c0 ); + computeRotation(Qframe, x, a, b, c ); + tinfo->Qframe = Qframe; + + // The positions of each point is expressed into the local frame at rest position + tinfo->restLocalPositions[0] = Qframe0.rotate(x0[b0].getCenter() - x0[a0].getCenter()); + tinfo->restLocalPositions[1] = Qframe0.rotate(x0[c0].getCenter() - x0[a0].getCenter()); + + if (d_bending.getValue()) + { + // Computes inverse of C for initial position (in case of the latter is different than the rest_position) + tinfo->localB = Qframe.rotate(x[b].getCenter()-x[a].getCenter()); + tinfo->localC = Qframe.rotate(x[c].getCenter()-x[a].getCenter()); + computeStrainDisplacementMatrixBending(tinfo, tinfo->localB, tinfo->localC); + + // Computes triangles' surface + StrainDisplacement J; + computeStrainDisplacementMatrix(J, i, tinfo->localB, tinfo->localC); + + // Local rest orientations (Evaluates the difference between the rest position and the flat position to allow the use of a deformed rest shape) + tinfo->restLocalOrientations[0] = qDiffZ(x0[a0].getOrientation(), Qframe0); + tinfo->restLocalOrientations[1] = qDiffZ(x0[b0].getOrientation(), Qframe0); + tinfo->restLocalOrientations[2] = qDiffZ(x0[c0].getOrientation(), Qframe0); + + // Creates a vector u_rest matching the difference between rest and flat positions + tinfo->u_rest.clear(); + tinfo->u_rest[1] = tinfo->restLocalOrientations[0].toEulerVector()[0]; + tinfo->u_rest[2] = tinfo->restLocalOrientations[0].toEulerVector()[1]; + tinfo->u_rest[4] = tinfo->restLocalOrientations[1].toEulerVector()[0]; + tinfo->u_rest[5] = tinfo->restLocalOrientations[1].toEulerVector()[1]; + tinfo->u_rest[7] = tinfo->restLocalOrientations[2].toEulerVector()[0]; + tinfo->u_rest[8] = tinfo->restLocalOrientations[2].toEulerVector()[1]; + + // Computes vector displacement between initial position and rest positions (actual displacements that define the amount of stress within the structure) + DisplacementBending Disp_bending; + computeDisplacementBending(Disp_bending, x, i); + + } + + triangleInfo.endEdit(); +} + +// -------------------------------------------------------------------------------------- +// --- +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::applyStiffness(VecDeriv& v, const VecDeriv& dx, const Index elementIndex, const double kFactor) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[elementIndex]; + + // Get the indices of the 3 vertices for the current triangle + const Index& a = tinfo->a; + const Index& b = tinfo->b; + const Index& c = tinfo->c; + + // Computes displacements + Displacement Disp; + Vec3 x_a, x_b, x_c; + x_a = tinfo->Qframe.rotate(getVCenter(dx[a])); + Disp[0] = x_a[0]; + Disp[1] = x_a[1]; + + x_b = tinfo->Qframe.rotate(getVCenter(dx[b])); + Disp[2] = x_b[0]; + Disp[3] = x_b[1]; + + x_c = tinfo->Qframe.rotate(getVCenter(dx[c])); + Disp[4] = x_c[0]; + Disp[5] = x_c[1]; + + // Compute dF + Displacement dF; + dF = tinfo->stiffnessMatrix * Disp; + + // Transfer into global frame + getVCenter(v[a]) += tinfo->Qframe.inverseRotate(Vec3(-dF[0], -dF[1], 0)) * kFactor; + getVCenter(v[b]) += tinfo->Qframe.inverseRotate(Vec3(-dF[2], -dF[3], 0)) * kFactor; + getVCenter(v[c]) += tinfo->Qframe.inverseRotate(Vec3(-dF[4], -dF[5], 0)) * kFactor; + + // If bending is requested + if (d_bending.getValue()) + { + // Bending displacements + DisplacementBending Disp_bending; + Vec3 u; + u = tinfo->Qframe.rotate(getVOrientation(dx[a])); + Disp_bending[0] = x_a[2]; + Disp_bending[1] = u[0]; + Disp_bending[2] = u[1]; + + u = tinfo->Qframe.rotate(getVOrientation(dx[b])); + Disp_bending[3] = x_b[2]; + Disp_bending[4] = u[0]; + Disp_bending[5] = u[1]; + + u = tinfo->Qframe.rotate(getVOrientation(dx[c])); + Disp_bending[6] = x_c[2]; + Disp_bending[7] = u[0]; + Disp_bending[8] = u[1]; + + // Compute dF + DisplacementBending dF_bending; + dF_bending = tinfo->stiffnessMatrixBending * Disp_bending; + + // Go back into global frame + Vec3 fa1, fa2, fb1, fb2, fc1, fc2; + fa1 = tinfo->Qframe.inverseRotate(Vec3(0.0, 0.0, dF_bending[0])); + fa2 = tinfo->Qframe.inverseRotate(Vec3(dF_bending[1], dF_bending[2], 0.0)); + + fb1 = tinfo->Qframe.inverseRotate(Vec3(0.0, 0.0, dF_bending[3])); + fb2 = tinfo->Qframe.inverseRotate(Vec3(dF_bending[4], dF_bending[5], 0.0)); + + fc1 = tinfo->Qframe.inverseRotate(Vec3(0.0, 0.0, dF_bending[6])); + fc2 = tinfo->Qframe.inverseRotate(Vec3(dF_bending[7], dF_bending[8], 0.0)); + + v[a] += Deriv(-fa1, -fa2) * kFactor; + v[b] += Deriv(-fb1, -fb2) * kFactor; + v[c] += Deriv(-fc1, -fc2) * kFactor; + } + + + triangleInfo.endEdit(); +} + +// ------------------------------------------------------------------------------------------------------------- +// --- Compute displacement vector D as the difference between current current position 'p' and initial position +// --- expressed in the co-rotational frame of reference +// ------------------------------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeDisplacement(Displacement &Disp, const VecCoord &x, const Index elementIndex) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[elementIndex]; + + Index a = tinfo->a; + Index b = tinfo->b; + Index c = tinfo->c; + + // Compute local postions of vertices b and c in the co-rotational frame (a is always (0,0,0)) + tinfo->localB = tinfo->Qframe.rotate(x[b].getCenter()-x[a].getCenter()); + tinfo->localC = tinfo->Qframe.rotate(x[c].getCenter()-x[a].getCenter()); + + // In-plane local displacements + Vec3 uAB, uAC; + uAB = tinfo->localB - tinfo->restLocalPositions[0]; + uAC = tinfo->localC - tinfo->restLocalPositions[1]; + + Disp[0] = 0; + Disp[1] = 0; + Disp[2] = uAB[0]; + Disp[3] = 0; + Disp[4] = uAC[0]; + Disp[5] = uAC[1]; + + triangleInfo.endEdit(); +} + + +// ------------------------------------------------------------------------------------------------------------- +// --- Compute bending displacement vector D as the difference between current current position 'p' and initial position +// --- expressed in the co-rotational frame of reference +// ------------------------------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeDisplacementBending(DisplacementBending &Disp, const VecCoord &x, const Index elementIndex) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[elementIndex]; + + Index a = tinfo->a; + Index b = tinfo->b; + Index c = tinfo->c; + + Quat dQA = qDiffZ(x[a].getOrientation(), tinfo->Qframe); // Rotation of axis Z from Qframe to axis Z from x[a].getOrientation() + Quat dQB = qDiffZ(x[b].getOrientation(), tinfo->Qframe); // Rotation of axis Z from Qframe to axis Z from x[b].getOrientation() + Quat dQC = qDiffZ(x[c].getOrientation(), tinfo->Qframe); // Rotation of axis Z from Qframe to axis Z from x[c].getOrientation() + + // Difference between the current and the rest orientations yields displacement (into the triangle's frame) + dQA = qDiff(tinfo->restLocalOrientations[0].inverse(), dQA.inverse()); + dQB = qDiff(tinfo->restLocalOrientations[1].inverse(), dQB.inverse()); + dQC = qDiff(tinfo->restLocalOrientations[2].inverse(), dQC.inverse()); + + // Takes the Euler vector to get the rotation's axis + Vec3 rA, rB, rC; + rA = dQA.toEulerVector(); + rB = dQB.toEulerVector(); + rC = dQC.toEulerVector(); + + // Writes the computed displacements + Disp[0] = 0; // z displacement in A + Disp[1] = rA[0]; // x rotation in A + Disp[2] = rA[1]; // y rotation in A + + Disp[3] = 0; // z displacement in B + Disp[4] = rB[0]; // x rotation in B + Disp[5] = rB[1]; // y rotation in B + + Disp[6] = 0; // z displacement in C + Disp[7] = rC[0]; // x rotation in C + Disp[8] = rC[1]; // y rotation in C + + // Stores the vector u of displacements (used by the mechanical mapping for rendering) + tinfo->u = Disp; + + triangleInfo.endEdit(); +} + +// ------------------------------------------------------------------------------------------------------------ +// --- Compute the strain-displacement matrix where (a, b, c) are the local coordinates of the 3 nodes of a triangle +// ------------------------------------------------------------------------------------------------------------ +template +void TriangularBendingFEMForceField::computeStrainDisplacementMatrix(StrainDisplacement &J, const Index elementIndex, const Vec3& b, const Vec3& c) +{ + Real determinant; + determinant = b[0] * c[1]; + + Real x13 = -c[0] / determinant; // since a=(0,0) + Real x21 = b[0] / determinant; // since a=(0,0) + Real x32 = (c[0]-b[0]) / determinant; + Real y12 = 0; // since a=(0,0) and b[1] = 0 + Real y23 = -c[1] / determinant; // since a=(0,0) and b[1] = 0 + Real y31 = c[1] / determinant; // since a=(0,0) + + J[0][0] = y23; + J[0][1] = 0; + J[0][2] = x32; + + J[1][0] = 0; + J[1][1] = x32; + J[1][2] = y23; + + J[2][0] = y31; + J[2][1] = 0; + J[2][2] = x13; + + J[3][0] = 0; + J[3][1] = x13; + J[3][2] = y31; + + J[4][0] = y12; + J[4][1] = 0; + J[4][2] = x21; + + J[5][0] = 0; + J[5][1] = x21; + J[5][2] = y12; + + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + triangleInf[elementIndex].area = 0.5*determinant; + triangleInfo.endEdit(); + +} + + +// ------------------------------------------------------------------------------------------------------------ +// --- Compute the bending strain-displacement matrix where (a, b, c) are the coordinates of the 3 nodes of a triangle +// ------------------------------------------------------------------------------------------------------------ +template +void TriangularBendingFEMForceField::computeStrainDisplacementMatrixBending(TriangleInformation *tinfo, const Vec3& b, const Vec3& c) +{ + // Computation of the inverse of matrix C. Its inverse gives the coefficients c1, c2, ..., c9 of the deflection function given by: + // Uz = c1 + c2*x+ c3*y + c4*x^2 + c5*x*y + c6*y^2 + c7*x^3 + c8*(x*y^2 + x^2*y) + c9*y^3 + // Source: Tocher's deflection function presented by Przemieniecki + // Corrected deflection to get a symmetrical deformation: Uz = c1 + c2*x+ c3*y + c4*x^2 + c5*x*y + c6*y^2 + c7*x^3 + c8*x*y^2 + c9*y^3 + + Mat<9, 9, Real> C; + C.clear(); + + // Corrected + C(0,0) = 1; + C(1,2) = 1; + C(2,1) = -1; + C(3,0) = 1; C(3,1) = b[0]; C(3,3) = b[0]*b[0]; C(3,6) = b[0]*b[0]*b[0]; + C(4,2) = 1; C(4,4) = b[0]; + C(5,1) = -1; C(5,3) = -2*b[0]; C(5,6) = -3*b[0]*b[0]; + C(6,0) = 1; C(6,1) = c[0]; C(6,2) = c[1]; C(6,3) = c[0]*c[0]; C(6,4) = c[0]*c[1]; C(6,5) = c[1]*c[1]; + C(6,6) = c[0]*c[0]*c[0]; C(6,7) = c[0]*c[1]*c[1]; C(6,8) = c[1]*c[1]*c[1]; + C(7,2) = 1; C(7,4) = c[0]; C(7,5) = 2*c[1]; C(7,7) = 2*c[0]*c[1]; C(7,8) = 3*c[1]*c[1]; + C(8,1) = -1; C(8,3) = -2*c[0]; C(8,4) = -c[1]; C(8,6) = -3*c[0]*c[0]; C(8,7) = -c[1]*c[1]; + + // Inverse of C + Mat<9, 9, Real> invC; + invC.invert(C); + tinfo->invC = invC; + + // Calculation of the 3 Gauss points taken in the centre of each edge + Vec3 gaussPoint1 = b*0.5; // a is (0, 0, 0) + Vec3 gaussPoint2 = (b+c)*0.5; + Vec3 gaussPoint3 = c*0.5; // a is (0, 0, 0) + + // Retrieves the strain tensor used in flat-plate theory at each Gauss point + Mat<3, 9, Real> D1, D2, D3; + tensorFlatPlate(D1, gaussPoint1); + tensorFlatPlate(D2, gaussPoint2); + tensorFlatPlate(D3, gaussPoint3); + + // Compute strain-displacement matrix + tinfo->strainDisplacementMatrix1 = D1 * invC; + tinfo->strainDisplacementMatrix2 = D2 * invC; + tinfo->strainDisplacementMatrix3 = D3 * invC; +} + + +// -------------------------------------------------------------------------------------------------------- +// --- Computes the strain tensor used in flat-plate theory in a given point +// -------------------------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::tensorFlatPlate(Mat<3, 9, Real>& D, const Vec3 &P) +{ + // Flat-plat theory gives: + // e = D * c with + // [ 0 0 0 2 0 0 6x 2y 0 ] + // D = -z | 0 0 0 0 0 2 0 2x 6y | + // [ 0 0 0 0 2 0 0 4(x+y) 0 ] + // where e is the strain vector and c the coefficient vector of the deflection function + // + // CORRECTED: + // [ 0 0 0 2 0 0 6x 0 0 ] + // D = -z | 0 0 0 0 0 2 0 2x 6y | + // [ 0 0 0 0 2 0 0 4y 0 ] + + // Corrected + D.clear(); + D(0,3) = 2; D(0,6) = 6*P[0]; + D(1,5) = 2; D(1,7) = 2*P[0]; D(1,8) = 6*P[1]; + D(2,4) = 2; D(2,7) = 4*P[1]; +} + + +// ---------------------------------------------------------------------------------------------------------------------- +// --- Compute the stiffness matrix K = J * M * Jt where J is the strain-displacement matrix and M the material matrix +// ---------------------------------------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeStiffnessMatrix(StiffnessMatrix &K, const StrainDisplacement &J, const MaterialStiffness &M) +{ + Mat<3,6,Real> Jt; + Jt.transpose(J); + + K = J * M * Jt; +} + + +// ---------------------------------------------------------------------------------------------------------------------- +// --- Compute the stiffness matrix for bending K = J * M * Jt where J is the strain-displacement matrix and M the material matrix +// ---------------------------------------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeStiffnessMatrixBending(StiffnessMatrixBending &K, TriangleInformation *tinfo) +{ + Mat<9, 3, Real> J1t, J2t, J3t; + J1t.transpose(tinfo->strainDisplacementMatrix1); + J2t.transpose(tinfo->strainDisplacementMatrix2); + J3t.transpose(tinfo->strainDisplacementMatrix3); + + // K = (surface/3)*(t^3)*(J1t*material*J1 + J2t*material*J2 + J3t*material*J3) + K = J1t * tinfo->materialMatrix * tinfo->strainDisplacementMatrix1 + + J2t * tinfo->materialMatrix * tinfo->strainDisplacementMatrix2 + + J3t * tinfo->materialMatrix * tinfo->strainDisplacementMatrix3; +} + +// -------------------------------------------------------------------------------------- +// --- Compute material stiffness +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeMaterialStiffness(const int i) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + + TriangleInformation *tinfo = &triangleInf[i]; + + tinfo->materialMatrix[0][0] = 1; + tinfo->materialMatrix[0][1] = d_poisson.getValue(); + tinfo->materialMatrix[0][2] = 0; + tinfo->materialMatrix[1][0] = d_poisson.getValue(); + tinfo->materialMatrix[1][1] = 1; + tinfo->materialMatrix[1][2] = 0; + tinfo->materialMatrix[2][0] = 0; + tinfo->materialMatrix[2][1] = 0; + tinfo->materialMatrix[2][2] = 0.5f * (1 - d_poisson.getValue()); + + tinfo->materialMatrix *= (d_young.getValue() / (12 * (1 - d_poisson.getValue() * d_poisson.getValue()))); + + triangleInfo.endEdit(); +} + + +// -------------------------------------------------------------------------------------- +// --- Compute force F = J * material * Jt * u +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeForce(Displacement &F, const Displacement& D, const Index elementIndex) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[elementIndex]; + + // Compute strain-displacement matrix J + StrainDisplacement J; + computeStrainDisplacementMatrix(J, elementIndex, tinfo->localB, tinfo->localC); + tinfo->strainDisplacementMatrix = J; + + // Compute stiffness matrix K = J*material*Jt + StiffnessMatrix K; + computeStiffnessMatrix(K, J, tinfo->materialMatrix); + tinfo->stiffnessMatrix = K; + + // Compute forces + F = K * D; + + triangleInfo.endEdit(); +} + + +// -------------------------------------------------------------------------------------- +// --- Compute force F = Jt * material * J * u +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::computeForceBending(DisplacementBending &F_bending, const DisplacementBending& D_bending, const Index elementIndex) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[elementIndex]; + + // Compute strain-displacement matrix J + computeStrainDisplacementMatrixBending(tinfo, tinfo->localB, tinfo->localC); + + // Compute stiffness matrix K = Jt * material * J + StiffnessMatrixBending K_bending; + computeStiffnessMatrixBending(K_bending, tinfo); + Real t = d_thickness.getValue(); + K_bending *= t*t*t*(triangleInf[elementIndex].area)/3; + tinfo->stiffnessMatrixBending = K_bending; + + // Compute forces + F_bending = K_bending * D_bending; + + triangleInfo.endEdit(); +} + +// -------------------------------------------------------------------------------------- +// --- +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::accumulateForce(VecDeriv &f, const VecCoord &x, const Index elementIndex) +{ + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + TriangleInformation *tinfo = &triangleInf[elementIndex]; + + // Get the indices of the 3 vertices for the current triangle + const Index& a = tinfo->a; + const Index& b = tinfo->b; + const Index& c = tinfo->c; + + // Compute the quaternion that embodies the rotation between the triangle and world frames (co-rotational method) + Quat Qframe; + computeRotation(Qframe, x, a, b, c); + tinfo->Qframe = Qframe; + + // Compute in-plane displacement into the triangle's frame + Displacement D; + computeDisplacement(D, x, elementIndex); + + // Compute in-plane forces on this element (in the co-rotational space) + Displacement F; + computeForce(F, D, elementIndex); + + // Transform forces back into global reference frame + getVCenter(f[a]) -= tinfo->Qframe.inverseRotate(Vec3(F[0], F[1], 0)); + getVCenter(f[b]) -= tinfo->Qframe.inverseRotate(Vec3(F[2], F[3], 0)); + getVCenter(f[c]) -= tinfo->Qframe.inverseRotate(Vec3(F[4], F[5], 0)); + + if (d_bending.getValue()) + { + // Compute bending displacement for bending into the triangle's frame + DisplacementBending D_bending; + computeDisplacementBending(D_bending, x, elementIndex); + + // Compute bending forces on this element (in the co-rotational space) + DisplacementBending F_bending; + computeForceBending(F_bending, D_bending, elementIndex); + + // Transform forces back into global reference frame + Vec3 fa1 = tinfo->Qframe.inverseRotate(Vec3(0.0, 0.0, F_bending[0])); + Vec3 fa2 = tinfo->Qframe.inverseRotate(Vec3(F_bending[1], F_bending[2], 0.0)); + + Vec3 fb1 = tinfo->Qframe.inverseRotate(Vec3(0.0, 0.0, F_bending[3])); + Vec3 fb2 = tinfo->Qframe.inverseRotate(Vec3(F_bending[4], F_bending[5], 0.0)); + + Vec3 fc1 = tinfo->Qframe.inverseRotate(Vec3(0.0, 0.0, F_bending[6])); + Vec3 fc2 = tinfo->Qframe.inverseRotate(Vec3(F_bending[7], F_bending[8], 0.0)); + + f[a] += Deriv(-fa1, -fa2); + f[b] += Deriv(-fb1, -fb2); + f[c] += Deriv(-fc1, -fc2); + } + + triangleInfo.endEdit(); +} + + +// -------------------------------------------------------------------------------------- +// --- +// -------------------------------------------------------------------------------------- +template +void TriangularBendingFEMForceField::addForce(const sofa::core::MechanicalParams* /*mparams*/, DataVecDeriv& dataF, const DataVecCoord& dataX, const DataVecDeriv& /*dataV*/ ) +{ + VecDeriv& f = *(dataF.beginEdit()); + const VecCoord& p = dataX.getValue() ; + + int nbTriangles=_topology->getNbTriangles(); + f.resize(p.size()); + + for (int i=0; i +void TriangularBendingFEMForceField::addDForce(const sofa::core::MechanicalParams* mparams, DataVecDeriv& datadF, const DataVecDeriv& datadX ) +{ + VecDeriv& df = *(datadF.beginEdit()); + const VecDeriv& dp = datadX.getValue() ; + + double kFactor = mparams->kFactor(); + + int nbTriangles=_topology->getNbTriangles(); + df.resize(dp.size()); + + for (int i=0; i +void TriangularBendingFEMForceField::convertStiffnessMatrixToGlobalSpace(StiffnessMatrixGlobalSpace &K_gs, TriangleInformation *tinfo) +{ + // Stiffness matrix of current triangle + const StiffnessMatrix &K = tinfo->stiffnessMatrix; + + // Firstly, add all degrees of freedom (we add the unused translation in z) + StiffnessMatrixGlobalSpace K_18x18; + K_18x18.clear(); + unsigned int ig, jg; + + // Copy the stiffness matrix by block 2x2 into 18x18 matrix (the new index of each bloc into global matrix is a combination of 0, 6 and 12 in indices) + for (unsigned int bx=0; bx<3; bx++) + { + // Global row index + ig = 6*bx; + + for (unsigned int by=0; by<3; by++) + { + // Global column index + jg = 6*by; + + // Iterates over the indices of the bloc 2x2 + for (unsigned int i=0; i<2; i++) + { + for (unsigned int j=0; j<2; j++) + { + K_18x18[ig+i][jg+j] = K[2*bx+i][2*by+j]; + } + } + } + } + + + if (d_bending.getValue()) + { + // Stiffness matrix in bending of current triangle + const StiffnessMatrixBending &K_bending = tinfo->stiffnessMatrixBending; + + // Copy the stiffness matrix by block 3x3 into global matrix (the new index of each bloc into global matrix is a combination of 2, 8 and 15 in indices) + for (unsigned int bx=0; bx<3; bx++) + { + // Global row index + ig = 6*bx+2; + + for (unsigned int by=0; by<3; by++) + { + // Global column index + jg = 6*by+2; + + // Iterates over the indices of the bloc 3x3 + for (unsigned int i=0; i<3; i++) + { + for (unsigned int j=0; j<3; j++) + { + K_18x18[ig+i][jg+j] += K_bending[3*bx+i][3*by+j]; + } + } + + } + } + + } + + // Extend rotation matrix and its transpose + Transformation R, Rt; + tinfo->Qframe.toMatrix(R); + Rt.transpose(R); + + StiffnessMatrixGlobalSpace R18x18, Rt18x18; + + for(unsigned int i=0;i<3;++i) + { + for(unsigned int j=0;j<3;++j) + { + R18x18[i][j] = R18x18[i+3][j+3] = R18x18[i+6][j+6] = R18x18[i+9][j+9] = R18x18[i+12][j+12] = R18x18[i+15][j+15] = R[i][j]; + Rt18x18[i][j] = Rt18x18[i+3][j+3] = Rt18x18[i+6][j+6] = Rt18x18[i+9][j+9] = Rt18x18[i+12][j+12] = Rt18x18[i+15][j+15] = Rt[i][j]; + } + } + + // Then we put the stifness matrix into the global frame + K_gs = Rt18x18 * K_18x18 * R18x18; + +} + +template +void TriangularBendingFEMForceField::addKToMatrix(const sofa::core::MechanicalParams* mparams, const sofa::core::behavior::MultiMatrixAccessor* matrix) +{ + StiffnessMatrixGlobalSpace K_gs; + + // Build Matrix Block for this ForceField + unsigned int i, j ,n1, n2, row, column, ROW, COLUMN; + Index node1, node2; + + sofa::core::behavior::MultiMatrixAccessor::MatrixRef r = matrix->getMatrix(this->mstate); + sofa::type::vector& triangleInf = *(triangleInfo.beginEdit()); + + double kFactor = mparams->kFactor(); + + for(sofa::Index t=0 ; t != _topology->getNbTriangles() ; ++t) + { + TriangleInformation *tinfo = &triangleInf[t]; + const Triangle triangle = _topology->getTriangle(t); + + convertStiffnessMatrixToGlobalSpace(K_gs, tinfo); + + // find index of node 1 + for (n1=0; n1<3; n1++) + { + node1 = triangle[n1]; + + for(i=0; i<6; i++) + { + ROW = r.offset+6*node1+i; + row = 6*n1+i; + // find index of node 2 + for (n2=0; n2<3; n2++) + { + node2 = triangle[n2]; + + for (j=0; j<6; j++) + { + COLUMN = r.offset+6*node2+j; + column = 6*n2+j; + r.matrix->add(ROW, COLUMN, - K_gs[row][column] * kFactor); + } + } + } + } + } + + triangleInfo.endEdit(); +} + + +template +void TriangularBendingFEMForceField::addBToMatrix(sofa::linearalgebra::BaseMatrix * /*mat*/, double /*bFact*/, unsigned int &/*offset*/) +{ +} + + +template +void TriangularBendingFEMForceField::draw(const sofa::core::visual::VisualParams* vparams) +{ + if (!vparams->displayFlags().getShowForceFields()) + return; + + const auto stateLifeCycle = vparams->drawTool()->makeStateLifeCycle(); + vparams->drawTool()->disableLighting(); + + if (vparams->displayFlags().getShowWireFrame()) + vparams->drawTool()->setPolygonMode(0, true); + + std::vector colorVector; + std::vector vertices; + + const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + + const SeqTriangles triangles = _topology->getTriangles(); + for (const Triangle& tri: triangles) + { + colorVector.push_back(sofa::type::RGBAColor::green()); + vertices.push_back(sofa::type::Vec3(DataTypes::getCPos(x[tri[0]]))); + colorVector.push_back(sofa::type::RGBAColor(0, 0.5, 0.5, 1)); + vertices.push_back(sofa::type::Vec3(DataTypes::getCPos(x[tri[1]]))); + colorVector.push_back(sofa::type::RGBAColor(0, 0, 1, 1)); + vertices.push_back(sofa::type::Vec3(DataTypes::getCPos(x[tri[2]]))); + } + vparams->drawTool()->drawTriangles(vertices, colorVector); + + if (m_mapTopology){ + // Draw lines to visualize the mapping between nodes + std::vector > points; + + // Gets vertices of rest and initial positions respectively + const VecCoord& x0 = (l_restShape.get() != nullptr) + // if having changing rest shape take it + ? l_restShape.get()->f_position.getValue() + : (m_mapTopology + // if rest shape is fixed but we have mapped topology use it + ? l_topologyMapper.get()->f_input_position.getValue() + // otherwise just take rest shape in mechanical state + : this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue() + ); + const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + + int nbTriangles=_topology->getNbTriangles(); + + for (sofa::Index i=0; i 1e-8) { + points.push_back(x[tinfo.a].getCenter()); + points.push_back(x0[tinfo.a0].getCenter()); + } + if ((x[tinfo.b].getCenter() - x0[tinfo.b0].getCenter()).norm() > 1e-8) { + points.push_back(x[tinfo.b].getCenter()); + points.push_back(x0[tinfo.b0].getCenter()); + } + if ((x[tinfo.c].getCenter() - x0[tinfo.c0].getCenter()).norm() > 1e-8) { + points.push_back(x[tinfo.c].getCenter()); + points.push_back(x0[tinfo.c0].getCenter()); + } + } + + if (points.size() > 0) + vparams->drawTool()->drawLines(points, 1.0f, sofa::type::RGBAColor(1.0, 0.0, 1.0, 1.0)); + } +} + +template +void TriangularBendingFEMForceField::handleEvent(sofa::core::objectmodel::Event *event) +{ + if (dynamic_cast(event)) + { + // Update of the rest shape + // NOTE: the number of triangles should be the same in all topologies + unsigned int nbTriangles = _topology->getNbTriangles(); + for (unsigned int i=0; i. * +******************************************************************************* +* Authors: The SOFA Team and external contributors (see Authors.txt) * +* * +* Contact information: contact@sofa-framework.org * +******************************************************************************/ +#include + +#include +using sofa::core::ObjectFactory; + +extern "C" { + SOFA_SHELL_API void initExternalModule(); + SOFA_SHELL_API const char* getModuleName(); + SOFA_SHELL_API const char* getModuleVersion(); + SOFA_SHELL_API const char* getModuleLicense(); + SOFA_SHELL_API const char* getModuleDescription(); + SOFA_SHELL_API const char* getModuleComponentList(); +} + +void initExternalModule() +{ + static bool first = true; + if (first) + { + first = false; + } +} + +const char* getModuleName() +{ + return sofa_tostring(SOFA_TARGET); +} + +const char* getModuleVersion() +{ + return sofa_tostring(SHELL_VERSION); +} + +const char* getModuleLicense() +{ + return "LGPL"; +} + +const char* getModuleDescription() +{ + return "This plugin implements mechanical models implemented following the Shell method."; +} + +const char* getModuleComponentList() +{ + /// string containing the names of the classes provided by the plugin + static std::string classes = ObjectFactory::getInstance()->listClassesFromTarget(sofa_tostring(SOFA_TARGET)); + return classes.c_str(); +} + From 9fcda7c498611844e3d533103342f731f33e3abd Mon Sep 17 00:00:00 2001 From: EulalieCoevoet Date: Fri, 14 Apr 2023 12:25:58 +0200 Subject: [PATCH 3/9] Update README.md --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 714aefa..931a310 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,16 @@ # Shell -This plugin for SOFA implements mechanical models following the Shell method. +This plugin for [SOFA](https://github.com/sofa-framework/sofa) implements mechanical models following the Shell method. ![Shell example](doc/shell.png) +## AUTHORS + - Thomas Golembiovsky + - Christian Duriez + - Olivier Comas + - Igor Peterlik + - Stéphane Cotin + + +## LICENCE + - GPL From 32f3c84e8f35bf1efbe4000502ac336b2564b87e Mon Sep 17 00:00:00 2001 From: EulalieCoevoet Date: Mon, 17 Apr 2023 10:29:09 +0200 Subject: [PATCH 4/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 931a310..8b5f84a 100644 --- a/README.md +++ b/README.md @@ -13,4 +13,4 @@ This plugin for [SOFA](https://github.com/sofa-framework/sofa) implements mechan ## LICENCE - - GPL + - LGPL From 091ca9b7669f8627a42b86a983d6ac1c620e4152 Mon Sep 17 00:00:00 2001 From: Paul Baksic <30337881+bakpaul@users.noreply.github.com> Date: Mon, 13 May 2024 15:41:59 +0200 Subject: [PATCH 5/9] Add ci file (#1) --- .github/workflows/ci.yml | 103 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..cf56ef6 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,103 @@ +name: CI + +on: + workflow_dispatch: + pull_request: + push: + +jobs: + build-and-test: + name: Run on ${{ matrix.os }} with SOFA ${{ matrix.sofa_branch }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-22.04, macos-13, windows-2022] + sofa_branch: [master] + + steps: + + - name: Setup SOFA and environment + id: sofa + uses: sofa-framework/sofa-setup-action@v5 + with: + sofa_root: ${{ github.workspace }}/sofa + sofa_version: ${{ matrix.sofa_branch }} + sofa_scope: 'standard' + sofa_with_sofapython3: 'true' + + - name: Checkout source code + uses: actions/checkout@v2 + with: + path: ${{ env.WORKSPACE_SRC_PATH }} + + - name: Build and install + shell: bash + run: | + cmake_options="-GNinja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX="$WORKSPACE_INSTALL_PATH" \ + -DCMAKE_PREFIX_PATH="$SOFA_ROOT/lib/cmake" \ + " + if [ -e "$(command -v ccache)" ]; then + cmake_options="$cmake_options -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache" + fi + cmake_options="$(echo $cmake_options)" # prettify + + if [[ "$RUNNER_OS" == "Windows" ]]; then + cmd //c "${{ steps.sofa.outputs.vs_vsdevcmd }} \ + && cd /d $WORKSPACE_BUILD_PATH \ + && cmake $cmake_options ../src \ + && ninja install" + else + cd "$WORKSPACE_BUILD_PATH" + ccache -z + cmake $cmake_options ../src + ninja install + echo ${CCACHE_BASEDIR} + ccache -s + fi + + + - name: Create artifact + uses: actions/upload-artifact@v2.2.4 + with: + name: Shell_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }} + path: ${{ env.WORKSPACE_INSTALL_PATH }} + + - name: Install artifact + uses: actions/download-artifact@v2 + with: + name: Shell_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }} + path: ${{ env.WORKSPACE_ARTIFACT_PATH }} + + deploy: + name: Deploy artifacts + if: always() && startsWith(github.repository, 'SofaDefrost') && (startsWith(github.ref, 'refs/heads/') || startsWith(github.ref, 'refs/tags/')) # we are not on a fork and on a branch or a tag (not a PR) + needs: [build-and-test] + runs-on: ubuntu-latest + continue-on-error: true + steps: + - name: Get artifacts + uses: actions/download-artifact@v2 + with: + path: artifacts + + - name: Zip artifacts + shell: bash + run: | + cd $GITHUB_WORKSPACE/artifacts + for artifact in *; do + zip $artifact.zip -r $artifact/* + done + - name: Upload release + uses: softprops/action-gh-release@v1 + with: + name: ${{ github.ref_name }} + tag_name: release-${{ github.ref_name }} + fail_on_unmatched_files: false + target_commitish: ${{ github.ref_name }} + files: | + artifacts/Shell_*_Linux.zip + artifacts/Shell_*_Windows.zip + artifacts/Shell_*_macOS.zip From 78f12b9643d89e897855a4ec4c7f9e81217f9fcd Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Tue, 6 Aug 2024 10:08:10 +0200 Subject: [PATCH 6/9] Fix and clean CMake and dependencies (#3) --- CMakeLists.txt | 32 +++++-------------- ShellConfig.cmake.in | 13 ++------ Shell_test/CMakeLists.txt | 15 --------- .../TriangularBendingFEMForceField.h | 5 --- .../TriangularBendingFEMForceField.inl | 5 +-- 5 files changed, 11 insertions(+), 59 deletions(-) delete mode 100644 Shell_test/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 830aff5..de2b96d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,11 +2,9 @@ cmake_minimum_required(VERSION 3.12) project(Shell VERSION 1.0 LANGUAGES CXX) # Find and load CMake configuration of packages containing this plugin's dependencies -## Mandatory dependencies -find_package(SofaBase REQUIRED) # Dependency to SofaBaseVisual -## Optional dependencies -sofa_find_package(SofaGui) # Dependency to SofaGuiQt -sofa_find_package(Qt5 COMPONENTS Core) # Dependency to Qt5Core (needed for qt5_wrap_cpp) +find_package(Sofa.Component.Controller REQUIRED) +sofa_find_package(Sofa.Component.StateContainer REQUIRED) + # List all files set(SHELL_SRC_DIR src/Shell) @@ -19,29 +17,23 @@ set(HEADER_FILES ${SHELL_SRC_DIR}/engine/JoinMeshPoints.inl ${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.h ${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.inl - ) -set(HEADER_FILES_TO_MOC - ) +) set(SOURCE_FILES ${SHELL_SRC_DIR}/initShell.cpp ${SHELL_SRC_DIR}/controller/MeshChangedEvent.cpp ${SHELL_SRC_DIR}/controller/MeshInterpolator.cpp ${SHELL_SRC_DIR}/engine/JoinMeshPoints.cpp ${SHELL_SRC_DIR}/forcefield/TriangularBendingFEMForceField.cpp - ) +) set(README_FILES README.md - ) +) # Create the plugin library. -add_library(${PROJECT_NAME} SHARED ${HEADER_FILES_TO_MOC} ${MOCCED_HEADER_FILES} ${HEADER_FILES} ${SOURCE_FILES} ${README_FILES}) +add_library(${PROJECT_NAME} SHARED ${HEADER_FILES} ${SOURCE_FILES} ${README_FILES}) # Link the plugin library to its dependency(ies). -target_link_libraries(${PROJECT_NAME} SofaBaseVisual SofaUserInteraction) -# Link with the optional GUI dependencies. -if(Qt5Core_FOUND AND SofaGui_FOUND) - target_link_libraries(${PROJECT_NAME} SofaGuiQt) -endif() +target_link_libraries(${PROJECT_NAME} Sofa.Component.Controller Sofa.Component.StateContainer) # Create package Config, Version & Target files. # Deploy the headers, resources, scenes & examples. @@ -55,11 +47,3 @@ sofa_create_package_with_targets( INCLUDE_INSTALL_DIR ${PROJECT_NAME} RELOCATABLE "plugins" ) - -# Tests -# If SOFA_BUILD_TESTS exists and is OFF, then these tests will be auto-disabled -cmake_dependent_option(SHELL_BUILD_TESTS "Compile the automatic tests" ON "SOFA_BUILD_TESTS OR NOT DEFINED SOFA_BUILD_TESTS" OFF) -if(SHELL_BUILD_TESTS) - enable_testing() - add_subdirectory(Shell_test) -endif() diff --git a/ShellConfig.cmake.in b/ShellConfig.cmake.in index 191b84e..63e71a6 100644 --- a/ShellConfig.cmake.in +++ b/ShellConfig.cmake.in @@ -3,17 +3,8 @@ @PACKAGE_GUARD@ @PACKAGE_INIT@ -set(SHELL_HAVE_SOFAGUI @SHELL_HAVE_SOFAGUI@) -set(SHELL_HAVE_QT5CORE @SHELL_HAVE_QT5CORE@) - -find_package(SofaBase QUIET REQUIRED) - -if(SHELL_HAVE_SOFAGUI) - find_package(SofaGui QUIET REQUIRED) -endif() -if(SHELL_HAVE_QT5CORE) - find_package(Qt5 COMPONENTS Core QUIET REQUIRED) -endif() +find_package(Sofa.Component.Controller QUIET REQUIRED) +find_package(Sofa.Component.StateContainer QUIET REQUIRED) if(NOT TARGET @PROJECT_NAME@) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") diff --git a/Shell_test/CMakeLists.txt b/Shell_test/CMakeLists.txt deleted file mode 100644 index e209795..0000000 --- a/Shell_test/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -# cmake_minimum_required(VERSION 3.12) - -# project(Shell_test) - -# # find_package(Shell REQUIRED) -# find_package(Threads REQUIRED) -# find_package(Sofa.Testing REQUIRED) - -# set(SOURCE_FILES -# ) - -# add_executable(${PROJECT_NAME} ${SOURCE_FILES}) -# target_link_libraries(${PROJECT_NAME} PUBLIC Sofa.Testing Shell Threads::Threads) - -# add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME}) diff --git a/src/Shell/forcefield/TriangularBendingFEMForceField.h b/src/Shell/forcefield/TriangularBendingFEMForceField.h index 258a586..8008f8f 100644 --- a/src/Shell/forcefield/TriangularBendingFEMForceField.h +++ b/src/Shell/forcefield/TriangularBendingFEMForceField.h @@ -21,11 +21,6 @@ ******************************************************************************/ #pragma once -#if !defined(__GNUC__) || (__GNUC__ > 3 || (_GNUC__ == 3 && __GNUC_MINOR__ > 3)) -#pragma once -#endif - - #include #include #include diff --git a/src/Shell/forcefield/TriangularBendingFEMForceField.inl b/src/Shell/forcefield/TriangularBendingFEMForceField.inl index 199d7ea..ded1b64 100644 --- a/src/Shell/forcefield/TriangularBendingFEMForceField.inl +++ b/src/Shell/forcefield/TriangularBendingFEMForceField.inl @@ -22,8 +22,6 @@ #pragma once #include -#include -#include #include #include // for reading the file #include //for debugging @@ -34,7 +32,6 @@ #include #include #include -#include #include #include @@ -49,7 +46,7 @@ namespace shell::forcefield { using namespace sofa::type; - using namespace sofa::component::topology; + // using namespace sofa::component::topology; From e76f11d837bd5f144b38db712147deab70c7ccdd Mon Sep 17 00:00:00 2001 From: Alex Bilger Date: Tue, 6 Aug 2024 12:34:13 +0200 Subject: [PATCH 7/9] Clean the example scene (#4) --- ShellTest.scn | 30 ------------- ShellTest.html => examples/xml/ShellTest.html | 0 examples/xml/ShellTest.scn | 45 +++++++++++++++++++ 3 files changed, 45 insertions(+), 30 deletions(-) delete mode 100644 ShellTest.scn rename ShellTest.html => examples/xml/ShellTest.html (100%) create mode 100644 examples/xml/ShellTest.scn diff --git a/ShellTest.scn b/ShellTest.scn deleted file mode 100644 index 5c47232..0000000 --- a/ShellTest.scn +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ShellTest.html b/examples/xml/ShellTest.html similarity index 100% rename from ShellTest.html rename to examples/xml/ShellTest.html diff --git a/examples/xml/ShellTest.scn b/examples/xml/ShellTest.scn new file mode 100644 index 0000000..95a6ac0 --- /dev/null +++ b/examples/xml/ShellTest.scn @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From fc89d076e862e65d56a9693d7a3811fc1efaaf48 Mon Sep 17 00:00:00 2001 From: Tian Sizhe Date: Tue, 19 Nov 2024 08:56:26 +0100 Subject: [PATCH 8/9] Update versions of actions/download-artifact and actions/upload-artifact (#5) * Update versions of actions/download-artifact and actions/upload-artifact * Update versions of actions/download-artifact and actions/upload-artifact * update artifact name * update download-artifact version --- .github/workflows/ci.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf56ef6..7465f11 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,17 +58,28 @@ jobs: ccache -s fi - + - name: Sanitize artifact name + id: sanitize + # This step removes special characters from the artifact name to ensure compatibility with upload-artifact + # Characters removed: " : < > | * ? \r \n \ / + # Spaces are replaced with underscores + # This sanitization prevents errors in artifact creation and retrieval + shell: pwsh + run: | + $originalName = "Shell_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }}" + $artifact_name = $originalName -replace '[":;<>|*?\r\n\\/]', '' -replace ' ', '_' + echo "artifact_name=$artifact_name" >> $env:GITHUB_OUTPUT + - name: Create artifact - uses: actions/upload-artifact@v2.2.4 + uses: actions/upload-artifact@v4.4.0 with: - name: Shell_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }} + name: ${{ steps.sanitize.outputs.artifact_name }} path: ${{ env.WORKSPACE_INSTALL_PATH }} - name: Install artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: - name: Shell_${{ steps.sofa.outputs.run_branch }}_for-SOFA-${{ steps.sofa.outputs.sofa_version }}_${{ runner.os }} + name: ${{ steps.sanitize.outputs.artifact_name }} path: ${{ env.WORKSPACE_ARTIFACT_PATH }} deploy: @@ -79,7 +90,7 @@ jobs: continue-on-error: true steps: - name: Get artifacts - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: path: artifacts From 55cfb8c0cf34917dbd9241e7794901f0e7e34f1f Mon Sep 17 00:00:00 2001 From: Frederick Roy Date: Mon, 7 Apr 2025 18:57:28 +0900 Subject: [PATCH 9/9] apply change from SOFA v2506 lifecycle (#7) --- .../TriangularBendingFEMForceField.inl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Shell/forcefield/TriangularBendingFEMForceField.inl b/src/Shell/forcefield/TriangularBendingFEMForceField.inl index ded1b64..122957d 100644 --- a/src/Shell/forcefield/TriangularBendingFEMForceField.inl +++ b/src/Shell/forcefield/TriangularBendingFEMForceField.inl @@ -141,7 +141,7 @@ void TriangularBendingFEMForceField::init() if (mStateTarget) { m_targetTriangles = _topologyTarget->getTriangles(); - m_targetVertices = mStateTarget->read(sofa::core::ConstVecCoordId::position())->getValue(); + m_targetVertices = mStateTarget->read(sofa::core::vec_id::read_access::position)->getValue(); } else { @@ -167,7 +167,7 @@ void TriangularBendingFEMForceField::refineCoarseMeshToTarget(void) msg_info() << "Refining a mesh of " << _topology->getNbTriangles() << " triangles towards a target surface of " << m_targetTriangles.size() << " triangles."; // List of vertices - const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(sofa::core::vec_id::read_access::position)->getValue(); // List of triangles const SeqTriangles triangles = _topology->getTriangles(); @@ -362,7 +362,7 @@ template void TriangularBendingFEMForceField::reinit // Check if there is same number of nodes if (!m_mapTopology) { if (l_restShape.get()->f_position.getValue().size() != - this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue().size()) { + this->mstate->read(sofa::core::vec_id::read_access::position)->getValue().size()) { msg_warning() << "Different number of nodes in rest shape and mechanical state." ; } } else if (l_restShape.get()->f_position.getValue().size() != @@ -490,9 +490,9 @@ void TriangularBendingFEMForceField::initTriangle(const int i) // if rest shape is fixed but we have mapped topology use it ? l_topologyMapper.get()->f_input_position.getValue() // otherwise just take rest shape in mechanical state - : this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue() + : this->mstate->read(sofa::core::vec_id::read_access::position)->getValue() ); - const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(sofa::core::vec_id::read_access::position)->getValue(); // Rotation from triangle to world at rest and initial positions (respectively) Quat Qframe0, Qframe; @@ -1192,7 +1192,7 @@ void TriangularBendingFEMForceField::draw(const sofa::core::visual::V std::vector colorVector; std::vector vertices; - const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(sofa::core::vec_id::read_access::position)->getValue(); const SeqTriangles triangles = _topology->getTriangles(); for (const Triangle& tri: triangles) @@ -1218,9 +1218,9 @@ void TriangularBendingFEMForceField::draw(const sofa::core::visual::V // if rest shape is fixed but we have mapped topology use it ? l_topologyMapper.get()->f_input_position.getValue() // otherwise just take rest shape in mechanical state - : this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue() + : this->mstate->read(sofa::core::vec_id::read_access::position)->getValue() ); - const VecCoord& x = this->mstate->read(sofa::core::ConstVecCoordId::position())->getValue(); + const VecCoord& x = this->mstate->read(sofa::core::vec_id::read_access::position)->getValue(); int nbTriangles=_topology->getNbTriangles();