v0.9.0
EntPolynomialBaseCtx.hpp
Go to the documentation of this file.
1 /** \file EntPolynomialBaseCtx.hpp
2 \brief Implementation of Ainsworth-Cole H1 base on tetrahedral
3 
4 */
5 
6 /* This file is part of MoFEM.
7  * MoFEM is free software: you can redistribute it and/or modify it under
8  * the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation, either version 3 of the License, or (at your
10  * option) any later version.
11  *
12  * MoFEM is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15  * License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with MoFEM. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #ifndef __ENTPOLYNOMIALCTX_HPP__
21 #define __ENTPOLYNOMIALCTX_HPP__
22 
23 namespace MoFEM {
24 
25 struct DataForcesAndSourcesCore;
26 struct FEMethod;
27 
36 
37 /**
38  * \brief Class used to pass element data to calculate base functions on
39  * tet,triangle,edge
40  *
41  * \ingroup mofem_base_functions
42  */
44 
46  BaseFunctionUnknownInterface **iface) const;
47 
48  PetscErrorCode (*basePolynomialsType0)(int p, double s, double *diff_s,
49  double *L, double *diffL,
50  const int dim);
51 
52  PetscErrorCode (*basePolynomialsType1)(int p, double alpha, double x,
53  double t, double *diff_x,
54  double *diff_t, double *L,
55  double *diffL, const int dim);
56 
60  const std::string fieldName;
62 
64  const FieldApproximationBase base,
65  const FieldApproximationBase copy_node_base = LASTBASE);
66 
68  const std::string field_name, const FieldSpace space,
69  const FieldApproximationBase base,
70  const FieldApproximationBase copy_node_base = LASTBASE);
71 
72 protected:
74 };
75 
76 } // namespace MoFEM
77 
78 #endif //__ENTPOLYNOMIALCTX_HPP__
MoFEM interface unique ID.
MoFEMErrorCode query_interface(const MOFEMuuid &uuid, BaseFunctionUnknownInterface **iface) const
PetscErrorCode(* basePolynomialsType0)(int p, double s, double *diff_s, double *L, double *diffL, const int dim)
data structure for finite element entityIt keeps that about indices of degrees of freedom,...
Class used to pass element data to calculate base functions on tet,triangle,edge.
const FieldApproximationBase bAse
EntPolynomialBaseCtx(DataForcesAndSourcesCore &data, const FieldSpace space, const FieldApproximationBase base, const FieldApproximationBase copy_node_base=LASTBASE)
static const MOFEMuuid IDD_TET_BASE_FUNCTION
std::bitset< BITINTERFACEUID_SIZE > BitIntefaceId
Definition: Types.hpp:56
implementation of Data Operators for Forces and Sources
Definition: Common.hpp:21
const FieldApproximationBase copyNodeBase
FieldApproximationBase
approximation base
Definition: definitions.h:144
DataForcesAndSourcesCore & dAta
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
Definition: Exceptions.hpp:66
FieldSpace
approximation spaces
Definition: definitions.h:168
static const MOFEMuuid IDD_EDGE_BASE_FUNCTION
Base class used to exchange data between element data structures and class calculating base functions...
PetscErrorCode(* basePolynomialsType1)(int p, double alpha, double x, double t, double *diff_x, double *diff_t, double *L, double *diffL, const int dim)
static const MOFEMuuid IDD_TRI_BASE_FUNCTION
static const MOFEMuuid IDD_QUAD_BASE_FUNCTION