diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6625b68..951780e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,4 +37,4 @@ jobs: - name: "Run for ${{ matrix.os }}" shell: bash working-directory: ${{runner.workspace}} - run: ctest -S ${{ github.event.repository.name }}/gismo/cmake/ctest_script.cmake -D CTEST_BUILD_NAME="${{ github.event.repository.name }}_actions_$GITHUB_RUN_NUMBER" -D CTEST_CONFIGURATION_TYPE=RelWithDebInfo -D LABELS_FOR_SUBPROJECTS="gsUnstructuredSplines-tutorials" -D CTEST_SITE="${{ matrix.os }}_[actions]" -D CMAKE_ARGS="-DCMAKE_BUILD_TYPE=$BUILD_TYPE;-DCMAKE_CXX_STANDARD=11;-DGISMO_WITH_XDEBUG=ON;-DGISMO_BUILD_UNITTESTS=ON" -D GISMO_OPTIONAL='gsStructuralAnalysis\\;gsKLShell\\;gsSpectra\\;${{ github.event.repository.name }}' -Q \ No newline at end of file + run: ctest -S ${{ github.event.repository.name }}/gismo/cmake/ctest_script.cmake -D CTEST_BUILD_NAME="${{ github.event.repository.name }}_actions_$GITHUB_RUN_NUMBER" -D CTEST_CONFIGURATION_TYPE=RelWithDebInfo -D LABELS_FOR_SUBPROJECTS="gsUnstructuredSplines-tutorials" -D CTEST_SITE="${{ matrix.os }}_[actions]" -D CMAKE_ARGS="-DCMAKE_BUILD_TYPE=$BUILD_TYPE;-DCMAKE_CXX_STANDARD=11;-DGISMO_WITH_XDEBUG=ON;-DGISMO_BUILD_UNITTESTS=ON" -D GISMO_OPTIONAL='gsStructuralAnalysis\\;gsKLShell\\;${{ github.event.repository.name }}' -Q \ No newline at end of file diff --git a/src/gsAlmostC1.hpp b/src/gsAlmostC1.hpp index 713167c..567fc60 100644 --- a/src/gsAlmostC1.hpp +++ b/src/gsAlmostC1.hpp @@ -15,7 +15,7 @@ #include #include -#include +#include #include #include diff --git a/src/gsDPatchBase.h b/src/gsDPatchBase.h index d752d35..36d7a0f 100644 --- a/src/gsDPatchBase.h +++ b/src/gsDPatchBase.h @@ -716,7 +716,7 @@ class gsDPatchBase // } protected: - const gsMultiPatch & m_patches; + const gsMultiPatch m_patches; const gsMultiBasis m_Bbases; // reference? gsMultiBasis m_bases; diff --git a/src/gsDPatchBase.hpp b/src/gsDPatchBase.hpp index f9d1b7e..036aeb7 100644 --- a/src/gsDPatchBase.hpp +++ b/src/gsDPatchBase.hpp @@ -15,7 +15,7 @@ #include #include -#include +#include #include #include diff --git a/src/gsMPBESBSplineBasis.hpp b/src/gsMPBESBSplineBasis.hpp index 29c9bba..509d7b4 100644 --- a/src/gsMPBESBSplineBasis.hpp +++ b/src/gsMPBESBSplineBasis.hpp @@ -70,7 +70,7 @@ gsMPBESBSplineBasis::gsMPBESBSplineBasis( gsMultiPatch const & mp, index //topol.computeAllVertices(); for (size_t i = 0; i < mp.nPatches(); i++) { - GISMO_ASSERT(dynamic_cast * >(& mp.basis(i))!=NULL,"Bases is not of type gsTensorBSplineBasis<2>"); + GISMO_ASSERT(dynamic_cast * >(& mp.basis(i))!=NULL,"Bases is not of type gsTensorBSplineBasis<2>"); } m_topol = mp; m_bases = mp.basesCopy(); diff --git a/src/gsMPBESHSplineBasis.h b/src/gsMPBESHSplineBasis.h index e7cd383..ab9c123 100644 --- a/src/gsMPBESHSplineBasis.h +++ b/src/gsMPBESHSplineBasis.h @@ -96,7 +96,7 @@ class gsMPBESHSplineBasis : public gsMPBESBasis gsMPBESHSplineBasis& operator=( const gsMPBESHSplineBasis& other ); ~gsMPBESHSplineBasis() - { + { } //destructor @@ -123,7 +123,7 @@ class gsMPBESHSplineBasis : public gsMPBESBasis gsHTensorBasis & basis(size_t i) { return static_cast&>(*m_bases[i]); } - const gsHTensorBasis & basis(size_t i) const + const gsHTensorBasis & basis(size_t i) const { return static_cast&>(*m_bases[i]); } unsigned basisFunctionsOnSide(const patchSide& ps) const; diff --git a/src/gsMPBESHSplineBasis.hpp b/src/gsMPBESHSplineBasis.hpp index 45bcab7..9d5d7b7 100644 --- a/src/gsMPBESHSplineBasis.hpp +++ b/src/gsMPBESHSplineBasis.hpp @@ -85,7 +85,7 @@ gsMPBESHSplineBasis::gsMPBESHSplineBasis( gsMultiPatch const & mp, index //topol.computeAllVertices(); for (size_t i = 0; i < mp.nPatches(); i++) { - GISMO_ASSERT(dynamic_cast * >(& mp.basis(i))!=NULL,"Bases is not of type gsHTensorBasis<2>"); + GISMO_ASSERT(dynamic_cast * >(& mp.basis(i))!=NULL,"Bases is not of type gsHTensorBasis<2>"); } m_topol = mp; m_bases = mp.basesCopy(); diff --git a/src/gsMPBESUtils.h b/src/gsMPBESUtils.h index f7dcf41..97316f7 100644 --- a/src/gsMPBESUtils.h +++ b/src/gsMPBESUtils.h @@ -22,7 +22,7 @@ gsMPBESBasis * getCompBasisFromMultiPatch(const gsMultiPatch & mp,index_ std::vector* >tensorBases; for(size_t i = 0;i * >(& mp.basis(i))); + tensorBases.push_back(dynamic_cast * >(mp.basis(i).clone().release())); tensorBSpline = tensorBSpline && tensorBases[i]!=NULL; } if(tensorBSpline) @@ -32,12 +32,14 @@ gsMPBESBasis * getCompBasisFromMultiPatch(const gsMultiPatch & mp,index_ std::vector* >hBases; for(size_t i = 0;i * >(& mp.basis(i))); + hBases.push_back(dynamic_cast * >(mp.basis(i).clone().release())); hTensor = hTensor && hBases[i]!=NULL; } if(hTensor) compBasis = (new gsMPBESHSplineBasis(hBases,mp,incrSmoothness,minEVDistance)); + freeAll(hBases); } + freeAll(tensorBases); GISMO_ASSERT(tensorBSpline||hTensor,"No suitable basis for gsMappedBasis found."); return compBasis; } @@ -51,7 +53,7 @@ gsMPBESBasis * getCompBasisFromMultiPatch_withCoefs(const gsMultiPatch & std::vector* >tensorBases; for(size_t i = 0;i * >(& mp.basis(i))); + tensorBases.push_back(dynamic_cast * >(mp.basis(i).clone().release())); tensorBSpline = tensorBSpline && tensorBases[i]!=NULL; } if(tensorBSpline) @@ -61,12 +63,19 @@ gsMPBESBasis * getCompBasisFromMultiPatch_withCoefs(const gsMultiPatch & std::vector* >hBases; for(size_t i = 0;i * >(& mp.basis(i))); + hBases.push_back(dynamic_cast * >(mp.basis(i).clone().release())); hTensor = hTensor && hBases[i]!=NULL; } if(hTensor) compBasis = (new gsMPBESHSplineBasis(hBases,mp,coefs,incrSmoothness,minEVDistance)); + // Remove HBasis pointers since they are cloned inside the constructor of the gsMPBESHSplineBasis + if (hBases.size()>0) + freeAll(hBases); } + // Remove BSpline pointers since they are cloned inside the constructor of the gsMPBESBSplineBasis + if (tensorBases.size()>0) + freeAll(tensorBases); + GISMO_ASSERT(tensorBSpline||hTensor,"No suitable basis for gsMappedBasis found."); return compBasis; }