v0.9.0
Public Member Functions | Public Attributes | List of all members
MoFEM::HelmholtzElement::OpHoCoordTet Struct Reference

#include <users_modules/helmholtz/src/HelmholtzElementObsolete.hpp>

Inherits UserDataOperator.

Public Member Functions

 OpHoCoordTet (const string field_name, MatrixDouble &ho_coords)
 
PetscErrorCode doWork (int side, EntityType type, DataForcesAndSurcesCore::EntData &data)
 

Public Attributes

MatrixDoublehoCoordsTet
 

Detailed Description

Definition at line 381 of file HelmholtzElementObsolete.hpp.

Constructor & Destructor Documentation

◆ OpHoCoordTet()

MoFEM::HelmholtzElement::OpHoCoordTet::OpHoCoordTet ( const string  field_name,
MatrixDouble ho_coords 
)

Definition at line 384 of file HelmholtzElementObsolete.hpp.

384  :
386  hoCoordsTet(ho_coords) {}
ForcesAndSourcesCore::UserDataOperator UserDataOperator

Member Function Documentation

◆ doWork()

PetscErrorCode MoFEM::HelmholtzElement::OpHoCoordTet::doWork ( int  side,
EntityType  type,
DataForcesAndSurcesCore::EntData data 
)

Definition at line 392 of file HelmholtzElementObsolete.hpp.

393  {
394  PetscFunctionBegin;
395 
396  try {
397 
398  if(data.getFieldData().size()==0) PetscFunctionReturn(0);
399 
400  hoCoordsTet.resize(data.getN().size1(),3);
401  if(type == MBVERTEX) {
402  hoCoordsTet.clear();
403  }
404 
405  int nb_dofs = data.getFieldData().size();
406 
407  for(unsigned int gg = 0;gg<data.getN().size1();gg++) {
408  for(int dd = 0;dd<3;dd++) {
409  hoCoordsTet(gg,dd) += cblas_ddot(nb_dofs/3,&data.getN(gg)[0],1,&data.getFieldData()[dd],3); //calculate x,y,z at each GaussPts
410  }
411  }
412 
413  } catch (const std::exception& ex) {
414  ostringstream ss;
415  ss << "throw in method: " << ex.what() << endl;
416  SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
417  }
418 
419  PetscFunctionReturn(0);
420  }
double cblas_ddot(const int N, const double *X, const int incX, const double *Y, const int incY)
Definition: cblas_ddot.c:12
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > dd(const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
Definition: ddTensor0.hpp:33

Member Data Documentation

◆ hoCoordsTet

MatrixDouble& MoFEM::HelmholtzElement::OpHoCoordTet::hoCoordsTet

Definition at line 383 of file HelmholtzElementObsolete.hpp.


The documentation for this struct was generated from the following file: