6 #ifndef __FACEELEMENTFORCESANDSOURCESCORE_HPP__
7 #define __FACEELEMENTFORCESANDSOURCESCORE_HPP__
9 using namespace boost::numeric;
13 struct VolumeElementForcesAndSourcesCoreOnSide;
103 inline double getArea();
119 inline auto getFTensor1Normal();
123 inline auto getFTensor1Tangent1();
127 inline auto getFTensor1Tangent2();
131 inline int getNumNodes();
157 inline auto getFTensor1Coords();
171 inline ublas::matrix_row<MatrixDouble> getNormalsAtGaussPts(
const int gg);
205 inline auto getFTensor1NormalsAtGaussPts();
210 inline auto getFTensor1Tangent1AtGaussPts();
215 inline auto getFTensor1Tangent2AtGaussPts();
232 loopSideVolumes(
const string fe_name,
239 double FaceElementForcesAndSourcesCore::UserDataOperator::getArea() {
243 VectorDouble &FaceElementForcesAndSourcesCore::UserDataOperator::getNormal() {
247 VectorDouble &FaceElementForcesAndSourcesCore::UserDataOperator::getTangent1() {
251 VectorDouble &FaceElementForcesAndSourcesCore::UserDataOperator::getTangent2() {
255 auto FaceElementForcesAndSourcesCore::UserDataOperator::getFTensor1Normal() {
256 double *ptr = &*getNormal().data().begin();
260 auto FaceElementForcesAndSourcesCore::UserDataOperator::getFTensor1Tangent1() {
261 double *ptr = &*getTangent1().data().begin();
265 auto FaceElementForcesAndSourcesCore::UserDataOperator::getFTensor1Tangent2() {
266 double *ptr = &*getTangent2().data().begin();
270 int FaceElementForcesAndSourcesCore::UserDataOperator::getNumNodes() {
275 FaceElementForcesAndSourcesCore::UserDataOperator::getConn() {
279 VectorDouble &FaceElementForcesAndSourcesCore::UserDataOperator::getCoords() {
283 auto FaceElementForcesAndSourcesCore::UserDataOperator::getFTensor1Coords() {
284 double *ptr = &*getCoords().data().begin();
290 FaceElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPts() {
295 ublas::matrix_row<MatrixDouble>
296 FaceElementForcesAndSourcesCore::UserDataOperator::getNormalsAtGaussPts(
298 return ublas::matrix_row<MatrixDouble>(
304 FaceElementForcesAndSourcesCore::UserDataOperator::getTangent1AtGaussPts() {
306 ->tangentOneAtGaussPts;
310 FaceElementForcesAndSourcesCore::UserDataOperator::getTangent2AtGaussPts() {
312 ->tangentTwoAtGaussPts;
315 auto FaceElementForcesAndSourcesCore::UserDataOperator::
316 getFTensor1NormalsAtGaussPts() {
317 double *ptr = &*getNormalsAtGaussPts().data().begin();
322 auto FaceElementForcesAndSourcesCore::UserDataOperator::
323 getFTensor1Tangent1AtGaussPts() {
324 double *ptr = &*getTangent1AtGaussPts().
data().begin();
329 auto FaceElementForcesAndSourcesCore::UserDataOperator::
330 getFTensor1Tangent2AtGaussPts() {
331 double *ptr = &*getTangent2AtGaussPts().
data().begin();
337 FaceElementForcesAndSourcesCore::UserDataOperator::getFaceFE() {
361 template <
typename E>
371 boost::shared_ptr<FaceElementForcesAndSourcesCore>
toElePtr;
376 #endif //__FACEELEMENTFORCESANDSOURCESCORE_HPP__