diff --git a/ProcessLib/SmallDeformation/LocalAssemblerInterface.h b/ProcessLib/SmallDeformation/LocalAssemblerInterface.h new file mode 100644 index 0000000000000000000000000000000000000000..01c7f48fa3612ff60019bcde5e484f6b970cd6ef --- /dev/null +++ b/ProcessLib/SmallDeformation/LocalAssemblerInterface.h @@ -0,0 +1,63 @@ +/** + * \copyright + * Copyright (c) 2012-2017, OpenGeoSys Community (http://www.opengeosys.org) + * Distributed under a Modified BSD License. + * See accompanying file LICENSE.txt or + * http://www.opengeosys.org/project/license + * + */ + +#pragma once + +#include <vector> + +#include "NumLib/Extrapolation/ExtrapolatableElement.h" +#include "ProcessLib/LocalAssemblerInterface.h" + +namespace ProcessLib +{ +namespace SmallDeformation +{ +struct SmallDeformationLocalAssemblerInterface + : public ProcessLib::LocalAssemblerInterface, + public NumLib::ExtrapolatableElement +{ + virtual std::vector<double> const& getIntPtSigmaXX( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtSigmaYY( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtSigmaZZ( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtSigmaXY( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtSigmaXZ( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtSigmaYZ( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtEpsilonXX( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtEpsilonYY( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtEpsilonZZ( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtEpsilonXY( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtEpsilonXZ( + std::vector<double>& cache) const = 0; + + virtual std::vector<double> const& getIntPtEpsilonYZ( + std::vector<double>& cache) const = 0; +}; + +} // namespace SmallDeformation +} // namespace ProcessLib diff --git a/ProcessLib/SmallDeformation/SmallDeformationFEM.h b/ProcessLib/SmallDeformation/SmallDeformationFEM.h index c636580640c988a12d131d4e5d4f3f5d6330dfc6..3e22ead64f00de4addc1866391b08d23b85e762d 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationFEM.h +++ b/ProcessLib/SmallDeformation/SmallDeformationFEM.h @@ -71,47 +71,6 @@ struct SecondaryData std::vector<ShapeMatrixType, Eigen::aligned_allocator<ShapeMatrixType>> N; }; -struct SmallDeformationLocalAssemblerInterface - : public ProcessLib::LocalAssemblerInterface, - public NumLib::ExtrapolatableElement -{ - virtual std::vector<double> const& getIntPtSigmaXX( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtSigmaYY( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtSigmaZZ( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtSigmaXY( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtSigmaXZ( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtSigmaYZ( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtEpsilonXX( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtEpsilonYY( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtEpsilonZZ( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtEpsilonXY( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtEpsilonXZ( - std::vector<double>& cache) const = 0; - - virtual std::vector<double> const& getIntPtEpsilonYZ( - std::vector<double>& cache) const = 0; -}; - template <typename ShapeFunction, typename IntegrationMethod, int DisplacementDim> class SmallDeformationLocalAssembler diff --git a/ProcessLib/SmallDeformation/SmallDeformationProcess.h b/ProcessLib/SmallDeformation/SmallDeformationProcess.h index 7cfc20a71d3df7a6fafa77ffe0f860972a69fed3..b4427aafbb71fdfb17f83b9af01a163022394ca4 100644 --- a/ProcessLib/SmallDeformation/SmallDeformationProcess.h +++ b/ProcessLib/SmallDeformation/SmallDeformationProcess.h @@ -9,6 +9,7 @@ #pragma once +#include "LocalAssemblerInterface.h" #include <cassert> #include "ProcessLib/Process.h"