12 #ifndef __EDGEELEMENTFORCESANDSURCESCORE_HPP__
13 #define __EDGEELEMENTFORCESANDSURCESCORE_HPP__
15 using namespace boost::numeric;
19 struct FaceElementForcesAndSourcesCoreOnSide;
80 inline double getLength();
91 inline auto getFTensor1Normal();
118 inline auto getFTensor1NormalsAtGaussPts();
131 return getTangentAtGaussPts();
164 return getFTensor1Coords();
172 template <
int DIM = 3>
174 getFTensor1TangentAtGaussPts();
177 loopSideFaces(
const string fe_name,
185 EdgeElementForcesAndSourcesCore::UserDataOperator::getConn() {
189 double EdgeElementForcesAndSourcesCore::UserDataOperator::getLength() {
194 EdgeElementForcesAndSourcesCore::UserDataOperator::getDirection() {
199 EdgeElementForcesAndSourcesCore::UserDataOperator::getCoords() {
204 EdgeElementForcesAndSourcesCore::UserDataOperator::getTangentAtGaussPts() {
210 EdgeElementForcesAndSourcesCore::UserDataOperator::getEdgeFE() {
215 EdgeElementForcesAndSourcesCore::UserDataOperator::getFTensor1Direction() {
221 EdgeElementForcesAndSourcesCore::UserDataOperator::getFTensor1Coords() {
222 double *ptr = &*getCoords().
data().begin();
229 EdgeElementForcesAndSourcesCore::UserDataOperator::getFTensor1TangentAtGaussPts<
231 double *ptr = &*getTangentAtGaussPts().
data().begin();
238 EdgeElementForcesAndSourcesCore::UserDataOperator::getFTensor1TangentAtGaussPts<
240 double *ptr = &*getTangentAtGaussPts().
data().begin();
244 auto EdgeElementForcesAndSourcesCore::UserDataOperator::getFTensor1Normal(
250 auto t_dir = getFTensor1Direction();
255 auto EdgeElementForcesAndSourcesCore::UserDataOperator::
256 getFTensor1Normal() {
257 return getFTensor1Normal(tFaceOrientation);
260 auto EdgeElementForcesAndSourcesCore::UserDataOperator::
266 auto &normals_at_gauss_pts =
268 normals_at_gauss_pts.resize(3, getGaussPts().size2(),
false);
269 auto t_normal = getFTensor1FromMat<3>(normals_at_gauss_pts);
270 auto t_dir = getFTensor1TangentAtGaussPts<3>();
271 for(
auto gg = 0; gg!=getGaussPts().size2(); ++gg) {
277 return getFTensor1FromMat<3>(normals_at_gauss_pts);
280 auto EdgeElementForcesAndSourcesCore::UserDataOperator::
281 getFTensor1NormalsAtGaussPts() {
282 return getFTensor1NormalsAtGaussPts(tFaceOrientation);
293 #endif //__EDGEELEMENTFORCESANDSURCESCORE_HPP__