v0.14.0
NormsOperators.hpp
Go to the documentation of this file.
1 /** \file NormsOperators.hpp
2  * \brief User data Operators for calculating norms
3 
4 */
5 
6 #ifndef __NORM_OPERATORS_HPP__
7 #define __NORM_OPERATORS_HPP__
8 
9 namespace MoFEM {
10 
11 /** \brief Get norm of input VectorDouble for Tensor0
12  *
13  */
14 
16 
17  OpCalcNormL2Tensor0(boost::shared_ptr<VectorDouble> data_ptr,
18  SmartPetscObj<Vec> data_vec, const int index,
19  boost::shared_ptr<VectorDouble> diff_data_ptr = nullptr);
20 
21  /**
22  * \brief calculate values of scalar field at integration points
23  * @param side side entity number
24  * @param type side entity type
25  * @param data entity data
26  * @return error code
27  */
28  MoFEMErrorCode doWork(int side, EntityType type,
30 
31 protected:
32  boost::shared_ptr<VectorDouble> dataPtr;
33  boost::shared_ptr<VectorDouble> diffDataPtr;
35  const int iNdex;
36 };
37 
38 /** \brief Get norm of input MatrixDouble for Tensor1
39  *
40  */
41 template <int DIM>
43 
44  OpCalcNormL2Tensor1(boost::shared_ptr<MatrixDouble> data_ptr,
45  SmartPetscObj<Vec> data_vec, const int index,
46  boost::shared_ptr<MatrixDouble> diff_data_ptr = nullptr);
47 
48  /**
49  * \brief calculate values of scalar field at integration points
50  * @param side side entity number
51  * @param type side entity type
52  * @param data entity data
53  * @return error code
54  */
55  MoFEMErrorCode doWork(int side, EntityType type,
57 
58 protected:
59  boost::shared_ptr<MatrixDouble> dataPtr;
60  boost::shared_ptr<MatrixDouble> diffDataPtr;
62  const int iNdex;
63 };
64 
65 /** \brief Get norm of input MatrixDouble for Tensor2
66  *
67  */
68 template <int DIM_1, int DIM_2>
70 
71  OpCalcNormL2Tensor2(boost::shared_ptr<MatrixDouble> data_ptr,
72  SmartPetscObj<Vec> data_vec, const int index,
73  boost::shared_ptr<MatrixDouble> diff_data_ptr = nullptr);
74 
75  /**
76  * \brief calculate values of scalar field at integration points
77  * @param side side entity number
78  * @param type side entity type
79  * @param data entity data
80  * @return error code
81  */
82  MoFEMErrorCode doWork(int side, EntityType type,
84 
85 protected:
86  boost::shared_ptr<MatrixDouble> dataPtr;
87  boost::shared_ptr<MatrixDouble> diffDataPtr;
89  const int iNdex;
90 };
91 
92 } // namespace MoFEM
93 
94 #endif // __NORM_OPERATORS_HPP__
MoFEM::EntitiesFieldData::EntData
Data on single entity (This is passed as argument to DataOperator::doWork)
Definition: EntitiesFieldData.hpp:127
MoFEM::OpCalcNormL2Tensor2::dataVec
SmartPetscObj< Vec > dataVec
Definition: NormsOperators.hpp:88
MoFEM::Exceptions::MoFEMErrorCode
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:56
MoFEM::OpCalcNormL2Tensor1::dataVec
SmartPetscObj< Vec > dataVec
Definition: NormsOperators.hpp:61
MoFEM::OpCalcNormL2Tensor2::OpCalcNormL2Tensor2
OpCalcNormL2Tensor2(boost::shared_ptr< MatrixDouble > data_ptr, SmartPetscObj< Vec > data_vec, const int index, boost::shared_ptr< MatrixDouble > diff_data_ptr=nullptr)
Definition: NormsOperators.cpp:112
MoFEM::OpCalcNormL2Tensor2::dataPtr
boost::shared_ptr< MatrixDouble > dataPtr
Definition: NormsOperators.hpp:86
MoFEM::OpCalcNormL2Tensor2::iNdex
const int iNdex
Definition: NormsOperators.hpp:89
MoFEM::OpCalcNormL2Tensor1::dataPtr
boost::shared_ptr< MatrixDouble > dataPtr
Definition: NormsOperators.hpp:59
MoFEM::OpCalcNormL2Tensor2
Get norm of input MatrixDouble for Tensor2.
Definition: NormsOperators.hpp:69
MoFEM
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:10
MoFEM::ForcesAndSourcesCore::UserDataOperator
Definition: ForcesAndSourcesCore.hpp:549
convert.type
type
Definition: convert.py:64
MoFEM::OpCalcNormL2Tensor0::OpCalcNormL2Tensor0
OpCalcNormL2Tensor0(boost::shared_ptr< VectorDouble > data_ptr, SmartPetscObj< Vec > data_vec, const int index, boost::shared_ptr< VectorDouble > diff_data_ptr=nullptr)
Definition: NormsOperators.cpp:10
MoFEM::OpCalcNormL2Tensor2::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
calculate values of scalar field at integration points
Definition: NormsOperators.cpp:127
MoFEM::OpCalcNormL2Tensor0::dataPtr
boost::shared_ptr< VectorDouble > dataPtr
Definition: NormsOperators.hpp:32
MoFEM::OpCalcNormL2Tensor1
Get norm of input MatrixDouble for Tensor1.
Definition: NormsOperators.hpp:42
MoFEM::OpCalcNormL2Tensor2::diffDataPtr
boost::shared_ptr< MatrixDouble > diffDataPtr
Definition: NormsOperators.hpp:87
MoFEM::OpCalcNormL2Tensor0::iNdex
const int iNdex
Definition: NormsOperators.hpp:35
MoFEM::OpCalcNormL2Tensor0::dataVec
SmartPetscObj< Vec > dataVec
Definition: NormsOperators.hpp:34
MoFEM::OpCalcNormL2Tensor1::iNdex
const int iNdex
Definition: NormsOperators.hpp:62
MoFEM::OpCalcNormL2Tensor1::OpCalcNormL2Tensor1
OpCalcNormL2Tensor1(boost::shared_ptr< MatrixDouble > data_ptr, SmartPetscObj< Vec > data_vec, const int index, boost::shared_ptr< MatrixDouble > diff_data_ptr=nullptr)
Definition: NormsOperators.cpp:59
MoFEM::OpCalcNormL2Tensor0
Get norm of input VectorDouble for Tensor0.
Definition: NormsOperators.hpp:15
MoFEM::OpCalcNormL2Tensor1::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
calculate values of scalar field at integration points
Definition: NormsOperators.cpp:74
MoFEM::SmartPetscObj< Vec >
MoFEM::OpCalcNormL2Tensor0::diffDataPtr
boost::shared_ptr< VectorDouble > diffDataPtr
Definition: NormsOperators.hpp:33
MoFEM::OpCalcNormL2Tensor1::diffDataPtr
boost::shared_ptr< MatrixDouble > diffDataPtr
Definition: NormsOperators.hpp:60
MoFEM::OpCalcNormL2Tensor0::doWork
MoFEMErrorCode doWork(int side, EntityType type, EntitiesFieldData::EntData &data)
calculate values of scalar field at integration points
Definition: NormsOperators.cpp:23