diff --git a/Sofa/Component/Mass/src/sofa/component/mass/NodalMassDensity.cpp b/Sofa/Component/Mass/src/sofa/component/mass/NodalMassDensity.cpp index cb5f531971c..5697e159e75 100644 --- a/Sofa/Component/Mass/src/sofa/component/mass/NodalMassDensity.cpp +++ b/Sofa/Component/Mass/src/sofa/component/mass/NodalMassDensity.cpp @@ -25,12 +25,14 @@ namespace sofa::component::mass { -template class SOFA_COMPONENT_MASS_API NodalMassDensity; +template class SOFA_COMPONENT_MASS_API NodalMassDensity; +template class SOFA_COMPONENT_MASS_API NodalMassDensity; void registerNodalMassDensity(sofa::core::ObjectFactory* factory) { factory->registerObjects(core::ObjectRegistrationData("Definition of a nodal mass density (one value per dof).") - .add< NodalMassDensity >() + .add< NodalMassDensity >() + .add< NodalMassDensity >() ); } diff --git a/applications/plugins/SofaCUDA/Component/CMakeLists.txt b/applications/plugins/SofaCUDA/Component/CMakeLists.txt index effab0275a9..e30a18bc29d 100644 --- a/applications/plugins/SofaCUDA/Component/CMakeLists.txt +++ b/applications/plugins/SofaCUDA/Component/CMakeLists.txt @@ -36,7 +36,8 @@ set(HEADER_FILES ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaMeshMatrixMass.inl ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaUniformMass.h ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaUniformMass.inl - + ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaFEMMass.h + ### solidmechanics ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/solidmechanics/fem/elastic/CudaFEMKernelUtils.cuh @@ -114,6 +115,7 @@ set(SOURCE_FILES ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaDiagonalMass.cpp ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaMeshMatrixMass.cpp ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaUniformMass.cpp + ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/mass/CudaFEMMass.cpp ### Solidmechanics ${SOFACUDA_COMPONENT_SOURCE_DIR}/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cpp diff --git a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/init.cpp b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/init.cpp index 968cd603fb6..794b720ae7f 100644 --- a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/init.cpp +++ b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/init.cpp @@ -81,6 +81,7 @@ extern void registerRigidMapping(sofa::core::ObjectFactory* factory); extern void registerDiagonalMass(sofa::core::ObjectFactory* factory); extern void registerMeshMatrixMass(sofa::core::ObjectFactory* factory); extern void registerUniformMass(sofa::core::ObjectFactory* factory); +extern void registerFEMMass(sofa::core::ObjectFactory* factory); // component::mechanicalload extern void registerConstantForceField(sofa::core::ObjectFactory* factory); @@ -221,6 +222,7 @@ void registerObjects(sofa::core::ObjectFactory* factory) registerDiagonalMass(factory); registerMeshMatrixMass(factory); registerUniformMass(factory); + registerFEMMass(factory); registerConstantForceField(factory); registerEllipsoidForceField(factory); registerLinearForceField(factory); diff --git a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/mass/CudaFEMMass.cpp b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/mass/CudaFEMMass.cpp new file mode 100644 index 00000000000..71487b3f72d --- /dev/null +++ b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/mass/CudaFEMMass.cpp @@ -0,0 +1,85 @@ +/****************************************************************************** +* 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 SOFA_GPU_CUDA_CUDAFEMMASS_CPP + +#include + +#include +#include +#include +#include +#include +#include + +namespace sofa::component::mass +{ + +using namespace sofa::gpu::cuda; + +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; + +#ifdef SOFA_GPU_CUDA_DOUBLE +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +template class SOFACUDA_COMPONENT_API FEMMass; +#endif + +} // namespace sofa::component::mass + +namespace sofa::gpu::cuda +{ + +void registerFEMMass(sofa::core::ObjectFactory* factory) +{ + using namespace sofa::component::mass; + + factory->registerObjects(sofa::core::ObjectRegistrationData("Supports GPU-side computations using CUDA for FEMMass") + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() +#ifdef SOFA_GPU_CUDA_DOUBLE + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() + .add< FEMMass >() +#endif + ); +} + +} // namespace sofa::gpu::cuda diff --git a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/mass/CudaFEMMass.h b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/mass/CudaFEMMass.h new file mode 100644 index 00000000000..bb847a6f167 --- /dev/null +++ b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/mass/CudaFEMMass.h @@ -0,0 +1,52 @@ +/****************************************************************************** +* 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 + +namespace sofa::component::mass +{ + +#ifndef SOFA_GPU_CUDA_CUDAFEMMASS_CPP +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; + +#ifdef SOFA_GPU_CUDA_DOUBLE +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +extern template class SOFACUDA_COMPONENT_API FEMMass; +#endif +#endif + +} // namespace sofa::component::mass diff --git a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cpp b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cpp index ca58990357d..ce190709333 100644 --- a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cpp +++ b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cpp @@ -35,6 +35,8 @@ template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; +template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; +template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; #ifdef SOFA_GPU_CUDA_DOUBLE template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; @@ -42,6 +44,8 @@ template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; +template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; +template class SOFACUDA_COMPONENT_API CudaCorotationalFEMForceField; #endif } // namespace sofa::component::solidmechanics::fem::elastic @@ -54,48 +58,24 @@ void registerCorotationalFEMForceField(sofa::core::ObjectFactory* factory) using namespace sofa::component::solidmechanics::fem::elastic; factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for EdgeCorotationalFEMForceField") + "Supports GPU-side computations using CUDA for CorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for TriangleCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for QuadCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for TetrahedronCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for HexahedronCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - + .add< CudaCorotationalFEMForceField >() + .add< CudaCorotationalFEMForceField >() #ifdef SOFA_GPU_CUDA_DOUBLE - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for EdgeCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for TriangleCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for QuadCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for TetrahedronCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for HexahedronCorotationalFEMForceField") .add< CudaCorotationalFEMForceField >() - ); + .add< CudaCorotationalFEMForceField >() + .add< CudaCorotationalFEMForceField >() #endif + ); } } // namespace sofa::gpu::cuda diff --git a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cu b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cu index a34a75c7646..3b0a486ecc1 100644 --- a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cu +++ b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaCorotationalFEMForceField.cu @@ -315,17 +315,25 @@ void CorotationalFEMForceFieldCuda_addDForce( INSTANTIATE_COROTATIONAL(float, 2) INSTANTIATE_COROTATIONAL(float, 3) INSTANTIATE_COROTATIONAL(float, 4) +INSTANTIATE_COROTATIONAL(float, 5) // Pyramid +INSTANTIATE_COROTATIONAL(float, 6) // Prism INSTANTIATE_COROTATIONAL(float, 8) INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(float, 3) INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(float, 4) +INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(float, 5) // Pyramid +INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(float, 6) // Prism INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(float, 8) INSTANTIATE_COROTATIONAL(double, 2) INSTANTIATE_COROTATIONAL(double, 3) INSTANTIATE_COROTATIONAL(double, 4) +INSTANTIATE_COROTATIONAL(double, 5) // Pyramid +INSTANTIATE_COROTATIONAL(double, 6) // Prism INSTANTIATE_COROTATIONAL(double, 8) INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(double, 3) INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(double, 4) +INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(double, 5) // Pyramid +INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(double, 6) // Prism INSTANTIATE_COROTATIONAL_WITH_ROTATIONS(double, 8) #undef INSTANTIATE_COROTATIONAL diff --git a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cpp b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cpp index 0c624c5b03e..83c0c67d5e5 100644 --- a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cpp +++ b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cpp @@ -35,6 +35,8 @@ template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; +template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; +template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; #ifdef SOFA_GPU_CUDA_DOUBLE template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; @@ -42,6 +44,8 @@ template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; +template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; +template class SOFACUDA_COMPONENT_API CudaLinearSmallStrainFEMForceField; #endif } // namespace sofa::component::solidmechanics::fem::elastic @@ -54,48 +58,24 @@ void registerLinearSmallStrainFEMForceField(sofa::core::ObjectFactory* factory) using namespace sofa::component::solidmechanics::fem::elastic; factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for EdgeLinearSmallStrainFEMForceField") + "Supports GPU-side computations using CUDA for LinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for TriangleLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for QuadLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for TetrahedronLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA for HexahedronLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - + .add< CudaLinearSmallStrainFEMForceField >() + .add< CudaLinearSmallStrainFEMForceField >() #ifdef SOFA_GPU_CUDA_DOUBLE - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for EdgeLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for TriangleLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for QuadLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for TetrahedronLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); - factory->registerObjects(sofa::core::ObjectRegistrationData( - "Supports GPU-side computations using CUDA (double) for HexahedronLinearSmallStrainFEMForceField") .add< CudaLinearSmallStrainFEMForceField >() - ); + .add< CudaLinearSmallStrainFEMForceField >() + .add< CudaLinearSmallStrainFEMForceField >() #endif + ); } } // namespace sofa::gpu::cuda diff --git a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cu b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cu index e625c701d49..c4d645838e5 100644 --- a/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cu +++ b/applications/plugins/SofaCUDA/Component/src/SofaCUDA/component/solidmechanics/fem/elastic/CudaLinearSmallStrainFEMForceField.cu @@ -177,11 +177,15 @@ void LinearSmallStrainFEMForceFieldCuda_addDForce( INSTANTIATE_LINEAR(float, 2) INSTANTIATE_LINEAR(float, 3) INSTANTIATE_LINEAR(float, 4) +INSTANTIATE_LINEAR(float, 5) // Pyramid +INSTANTIATE_LINEAR(float, 6) // Prism INSTANTIATE_LINEAR(float, 8) INSTANTIATE_LINEAR(double, 2) INSTANTIATE_LINEAR(double, 3) INSTANTIATE_LINEAR(double, 4) +INSTANTIATE_LINEAR(double, 5) // Pyramid +INSTANTIATE_LINEAR(double, 6) // Prism INSTANTIATE_LINEAR(double, 8) #undef INSTANTIATE_LINEAR diff --git a/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaCorotationalFEMForceField_prism.scn b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaCorotationalFEMForceField_prism.scn new file mode 100644 index 00000000000..0d6c13dad2e --- /dev/null +++ b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaCorotationalFEMForceField_prism.scn @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaCorotationalFEMForceField_pyramid.scn b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaCorotationalFEMForceField_pyramid.scn new file mode 100644 index 00000000000..7733aa92c89 --- /dev/null +++ b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaCorotationalFEMForceField_pyramid.scn @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaLinearSmallStrainFEMForceField_prism.scn b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaLinearSmallStrainFEMForceField_prism.scn new file mode 100644 index 00000000000..e7e30a3f603 --- /dev/null +++ b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaLinearSmallStrainFEMForceField_prism.scn @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaLinearSmallStrainFEMForceField_pyramid.scn b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaLinearSmallStrainFEMForceField_pyramid.scn new file mode 100644 index 00000000000..85b53b7e588 --- /dev/null +++ b/applications/plugins/SofaCUDA/examples/ElementFEMForcefield/CudaLinearSmallStrainFEMForceField_pyramid.scn @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +