ngsolve 6.2.2506.post74.dev0__cp314-cp314-macosx_10_15_universal2.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ngsolve might be problematic. Click here for more details.
- netgen/include/analytic_integrals.hpp +10 -0
- netgen/include/arnoldi.hpp +55 -0
- netgen/include/bandmatrix.hpp +334 -0
- netgen/include/basematrix.hpp +957 -0
- netgen/include/basevector.hpp +1268 -0
- netgen/include/bdbequations.hpp +2805 -0
- netgen/include/bdbintegrator.hpp +1660 -0
- netgen/include/bem_diffops.hpp +475 -0
- netgen/include/bessel.hpp +1064 -0
- netgen/include/bilinearform.hpp +963 -0
- netgen/include/bla.hpp +29 -0
- netgen/include/blockalloc.hpp +95 -0
- netgen/include/blockjacobi.hpp +328 -0
- netgen/include/bspline.hpp +116 -0
- netgen/include/calcinverse.hpp +141 -0
- netgen/include/cg.hpp +368 -0
- netgen/include/chebyshev.hpp +44 -0
- netgen/include/cholesky.hpp +720 -0
- netgen/include/clapack.h +7254 -0
- netgen/include/code_generation.hpp +296 -0
- netgen/include/coefficient.hpp +2033 -0
- netgen/include/coefficient_impl.hpp +19 -0
- netgen/include/coefficient_stdmath.hpp +167 -0
- netgen/include/commutingAMG.hpp +106 -0
- netgen/include/comp.hpp +79 -0
- netgen/include/compatibility.hpp +41 -0
- netgen/include/complex_wrapper.hpp +73 -0
- netgen/include/compressedfespace.hpp +110 -0
- netgen/include/contact.hpp +235 -0
- netgen/include/diagonalmatrix.hpp +154 -0
- netgen/include/differentialoperator.hpp +276 -0
- netgen/include/diffop.hpp +1286 -0
- netgen/include/diffop_impl.hpp +328 -0
- netgen/include/diffopwithfactor.hpp +123 -0
- netgen/include/discontinuous.hpp +84 -0
- netgen/include/dump.hpp +949 -0
- netgen/include/ectypes.hpp +121 -0
- netgen/include/eigen.hpp +60 -0
- netgen/include/eigensystem.hpp +18 -0
- netgen/include/elasticity_equations.hpp +595 -0
- netgen/include/elementbyelement.hpp +195 -0
- netgen/include/elementtopology.hpp +1760 -0
- netgen/include/elementtransformation.hpp +339 -0
- netgen/include/evalfunc.hpp +405 -0
- netgen/include/expr.hpp +1686 -0
- netgen/include/facetfe.hpp +175 -0
- netgen/include/facetfespace.hpp +180 -0
- netgen/include/facethofe.hpp +111 -0
- netgen/include/facetsurffespace.hpp +112 -0
- netgen/include/fe_interfaces.hpp +32 -0
- netgen/include/fem.hpp +87 -0
- netgen/include/fesconvert.hpp +14 -0
- netgen/include/fespace.hpp +1449 -0
- netgen/include/finiteelement.hpp +286 -0
- netgen/include/globalinterfacespace.hpp +77 -0
- netgen/include/globalspace.hpp +115 -0
- netgen/include/gridfunction.hpp +525 -0
- netgen/include/h1amg.hpp +124 -0
- netgen/include/h1hofe.hpp +188 -0
- netgen/include/h1hofe_impl.hpp +1262 -0
- netgen/include/h1hofefo.hpp +148 -0
- netgen/include/h1hofefo_impl.hpp +185 -0
- netgen/include/h1hofespace.hpp +167 -0
- netgen/include/h1lofe.hpp +1240 -0
- netgen/include/h1lumping.hpp +41 -0
- netgen/include/hcurl_equations.hpp +1381 -0
- netgen/include/hcurlcurlfe.hpp +2241 -0
- netgen/include/hcurlcurlfespace.hpp +78 -0
- netgen/include/hcurlfe.hpp +259 -0
- netgen/include/hcurlfe_utils.hpp +107 -0
- netgen/include/hcurlhdiv_dshape.hpp +857 -0
- netgen/include/hcurlhdivfes.hpp +308 -0
- netgen/include/hcurlhofe.hpp +175 -0
- netgen/include/hcurlhofe_impl.hpp +1871 -0
- netgen/include/hcurlhofespace.hpp +193 -0
- netgen/include/hcurllofe.hpp +1146 -0
- netgen/include/hdiv_equations.hpp +880 -0
- netgen/include/hdivdivfe.hpp +2923 -0
- netgen/include/hdivdivsurfacespace.hpp +76 -0
- netgen/include/hdivfe.hpp +206 -0
- netgen/include/hdivfe_utils.hpp +717 -0
- netgen/include/hdivfes.hpp +75 -0
- netgen/include/hdivhofe.hpp +447 -0
- netgen/include/hdivhofe_impl.hpp +1107 -0
- netgen/include/hdivhofefo.hpp +229 -0
- netgen/include/hdivhofespace.hpp +177 -0
- netgen/include/hdivhosurfacefespace.hpp +106 -0
- netgen/include/hdivlofe.hpp +773 -0
- netgen/include/hidden.hpp +74 -0
- netgen/include/householder.hpp +181 -0
- netgen/include/hypre_ams_precond.hpp +123 -0
- netgen/include/hypre_precond.hpp +73 -0
- netgen/include/integrator.hpp +2012 -0
- netgen/include/integratorcf.hpp +253 -0
- netgen/include/interpolate.hpp +49 -0
- netgen/include/intrule.hpp +2542 -0
- netgen/include/intrules_SauterSchwab.hpp +25 -0
- netgen/include/irspace.hpp +49 -0
- netgen/include/jacobi.hpp +153 -0
- netgen/include/kernels.hpp +762 -0
- netgen/include/l2hofe.hpp +194 -0
- netgen/include/l2hofe_impl.hpp +564 -0
- netgen/include/l2hofefo.hpp +542 -0
- netgen/include/l2hofespace.hpp +344 -0
- netgen/include/la.hpp +38 -0
- netgen/include/linearform.hpp +266 -0
- netgen/include/matrix.hpp +2140 -0
- netgen/include/memusage.hpp +41 -0
- netgen/include/meshaccess.hpp +1359 -0
- netgen/include/mgpre.hpp +204 -0
- netgen/include/mp_coefficient.hpp +145 -0
- netgen/include/mptools.hpp +2281 -0
- netgen/include/multigrid.hpp +42 -0
- netgen/include/multivector.hpp +447 -0
- netgen/include/mumpsinverse.hpp +187 -0
- netgen/include/mycomplex.hpp +361 -0
- netgen/include/ng_lapack.hpp +1661 -0
- netgen/include/ngblas.hpp +1232 -0
- netgen/include/ngs_defines.hpp +30 -0
- netgen/include/ngs_stdcpp_include.hpp +106 -0
- netgen/include/ngs_utils.hpp +121 -0
- netgen/include/ngsobject.hpp +1019 -0
- netgen/include/ngsstream.hpp +113 -0
- netgen/include/ngstd.hpp +72 -0
- netgen/include/nodalhofe.hpp +96 -0
- netgen/include/nodalhofe_impl.hpp +141 -0
- netgen/include/normalfacetfe.hpp +223 -0
- netgen/include/normalfacetfespace.hpp +98 -0
- netgen/include/normalfacetsurfacefespace.hpp +84 -0
- netgen/include/order.hpp +251 -0
- netgen/include/parallel_matrices.hpp +222 -0
- netgen/include/paralleldofs.hpp +340 -0
- netgen/include/parallelngs.hpp +23 -0
- netgen/include/parallelvector.hpp +269 -0
- netgen/include/pardisoinverse.hpp +200 -0
- netgen/include/periodic.hpp +129 -0
- netgen/include/plateaufespace.hpp +25 -0
- netgen/include/pml.hpp +275 -0
- netgen/include/pmltrafo.hpp +631 -0
- netgen/include/postproc.hpp +142 -0
- netgen/include/potentialtools.hpp +22 -0
- netgen/include/precomp.hpp +60 -0
- netgen/include/preconditioner.hpp +602 -0
- netgen/include/prolongation.hpp +377 -0
- netgen/include/python_comp.hpp +107 -0
- netgen/include/python_fem.hpp +89 -0
- netgen/include/python_linalg.hpp +58 -0
- netgen/include/python_ngstd.hpp +386 -0
- netgen/include/recursive_pol.hpp +4896 -0
- netgen/include/recursive_pol_tet.hpp +395 -0
- netgen/include/recursive_pol_trig.hpp +492 -0
- netgen/include/reorderedfespace.hpp +81 -0
- netgen/include/sample_sort.hpp +105 -0
- netgen/include/scalarfe.hpp +335 -0
- netgen/include/shapefunction_utils.hpp +113 -0
- netgen/include/simd_complex.hpp +329 -0
- netgen/include/smoother.hpp +253 -0
- netgen/include/solve.hpp +89 -0
- netgen/include/sparsecholesky.hpp +313 -0
- netgen/include/sparsematrix.hpp +1038 -0
- netgen/include/sparsematrix_dyn.hpp +90 -0
- netgen/include/sparsematrix_impl.hpp +1013 -0
- netgen/include/special_matrix.hpp +463 -0
- netgen/include/specialelement.hpp +125 -0
- netgen/include/statushandler.hpp +33 -0
- netgen/include/stringops.hpp +12 -0
- netgen/include/superluinverse.hpp +136 -0
- netgen/include/symbolicintegrator.hpp +850 -0
- netgen/include/symmetricmatrix.hpp +144 -0
- netgen/include/tangentialfacetfe.hpp +224 -0
- netgen/include/tangentialfacetfespace.hpp +91 -0
- netgen/include/tensor.hpp +522 -0
- netgen/include/tensorcoefficient.hpp +446 -0
- netgen/include/tensorproductintegrator.hpp +113 -0
- netgen/include/thcurlfe.hpp +128 -0
- netgen/include/thcurlfe_impl.hpp +380 -0
- netgen/include/thdivfe.hpp +80 -0
- netgen/include/thdivfe_impl.hpp +492 -0
- netgen/include/tpdiffop.hpp +461 -0
- netgen/include/tpfes.hpp +133 -0
- netgen/include/tpintrule.hpp +224 -0
- netgen/include/triangular.hpp +465 -0
- netgen/include/tscalarfe.hpp +245 -0
- netgen/include/tscalarfe_impl.hpp +1029 -0
- netgen/include/umfpackinverse.hpp +148 -0
- netgen/include/vector.hpp +1273 -0
- netgen/include/voxelcoefficientfunction.hpp +41 -0
- netgen/include/vtkoutput.hpp +198 -0
- netgen/include/vvector.hpp +208 -0
- netgen/include/webgui.hpp +92 -0
- netgen/libngbla.dylib +0 -0
- netgen/libngcomp.dylib +0 -0
- netgen/libngfem.dylib +0 -0
- netgen/libngla.dylib +0 -0
- netgen/libngsbem.dylib +0 -0
- netgen/libngsolve.dylib +0 -0
- netgen/libngstd.dylib +0 -0
- ngsolve/TensorProductTools.py +210 -0
- ngsolve/__console.py +94 -0
- ngsolve/__expr.py +181 -0
- ngsolve/__init__.py +148 -0
- ngsolve/__init__.pyi +233 -0
- ngsolve/_scikit_build_core_dependencies.py +30 -0
- ngsolve/bla.pyi +1153 -0
- ngsolve/bvp.py +78 -0
- ngsolve/bvp.pyi +32 -0
- ngsolve/cmake/NGSolveConfig.cmake +102 -0
- ngsolve/cmake/ngsolve-targets-release.cmake +79 -0
- ngsolve/cmake/ngsolve-targets.cmake +163 -0
- ngsolve/comp/__init__.pyi +5449 -0
- ngsolve/comp/pml.pyi +89 -0
- ngsolve/config/__init__.py +1 -0
- ngsolve/config/__init__.pyi +43 -0
- ngsolve/config/__main__.py +4 -0
- ngsolve/config/config.py +60 -0
- ngsolve/config/config.pyi +45 -0
- ngsolve/demos/TensorProduct/__init__.py +0 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_1d.py +80 -0
- ngsolve/demos/TensorProduct/tp_dg_1d_2d.py +73 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_1d.py +72 -0
- ngsolve/demos/TensorProduct/tp_dg_2d_2d.py +66 -0
- ngsolve/demos/__init__.py +0 -0
- ngsolve/demos/howto/__init__.py +0 -0
- ngsolve/demos/howto/hhj.py +44 -0
- ngsolve/demos/howto/hybrid_dg.py +53 -0
- ngsolve/demos/howto/mixed.py +30 -0
- ngsolve/demos/howto/nonlin.py +29 -0
- ngsolve/demos/howto/pickling.py +26 -0
- ngsolve/demos/howto/pml.py +31 -0
- ngsolve/demos/howto/taskmanager.py +20 -0
- ngsolve/demos/howto/tdnns.py +47 -0
- ngsolve/demos/howto/timeDG-skeleton.py +45 -0
- ngsolve/demos/howto/timeDG.py +38 -0
- ngsolve/demos/howto/timeDGlap.py +42 -0
- ngsolve/demos/howto/timeDGwave.py +61 -0
- ngsolve/demos/intro/__init__.py +0 -0
- ngsolve/demos/intro/adaptive.py +123 -0
- ngsolve/demos/intro/cmagnet.py +59 -0
- ngsolve/demos/intro/elasticity.py +76 -0
- ngsolve/demos/intro/navierstokes.py +74 -0
- ngsolve/demos/intro/poisson.ipynb +170 -0
- ngsolve/demos/intro/poisson.py +41 -0
- ngsolve/demos/mpi/__init__.py +0 -0
- ngsolve/demos/mpi/mpi_cmagnet.py +87 -0
- ngsolve/demos/mpi/mpi_navierstokes.py +117 -0
- ngsolve/demos/mpi/mpi_poisson.py +89 -0
- ngsolve/demos/mpi/mpi_timeDG.py +82 -0
- ngsolve/directsolvers.py +26 -0
- ngsolve/directsolvers.pyi +15 -0
- ngsolve/eigenvalues.py +364 -0
- ngsolve/eigenvalues.pyi +30 -0
- ngsolve/fem.pyi +1647 -0
- ngsolve/internal.py +89 -0
- ngsolve/krylovspace.py +1013 -0
- ngsolve/krylovspace.pyi +298 -0
- ngsolve/la.pyi +1230 -0
- ngsolve/meshes.py +748 -0
- ngsolve/ngs2petsc.py +310 -0
- ngsolve/ngscxx.py +42 -0
- ngsolve/ngslib.so +0 -0
- ngsolve/ngstd.pyi +59 -0
- ngsolve/nonlinearsolvers.py +203 -0
- ngsolve/nonlinearsolvers.pyi +95 -0
- ngsolve/preconditioners.py +11 -0
- ngsolve/preconditioners.pyi +7 -0
- ngsolve/solve.pyi +109 -0
- ngsolve/solve_implementation.py +168 -0
- ngsolve/solve_implementation.pyi +42 -0
- ngsolve/solvers.py +7 -0
- ngsolve/solvers.pyi +14 -0
- ngsolve/timestepping.py +185 -0
- ngsolve/timestepping.pyi +28 -0
- ngsolve/timing.py +108 -0
- ngsolve/timing.pyi +54 -0
- ngsolve/utils.py +167 -0
- ngsolve/utils.pyi +273 -0
- ngsolve/webgui.py +670 -0
- ngsolve-6.2.2506.post74.dev0.data/data/Netgen.icns +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngscxx +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsld +13 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngsolve.tcl +648 -0
- ngsolve-6.2.2506.post74.dev0.data/data/bin/ngspy +2 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.geo +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/beam.vol +240 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.in2d +41 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/chip.vol +614 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.geo +12 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coil.vol +2560 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.geo +24 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/coilshield.vol +3179 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.geo +19 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/cube.vol +1832 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d10_DGdoubleglazing.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d11_chip_nitsche.pde +40 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d1_square.pde +43 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d2_chip.pde +35 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d3_helmholtz.pde +22 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d4_cube.pde +46 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d5_beam.pde +74 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d6_shaft.pde +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d7_coil.pde +50 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d8_coilshield.pde +49 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/d9_hybridDG.pde +72 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.in2d +27 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/doubleglazing.vol +737 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/piezo2d40round4.vol.gz +0 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.geo +73 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/shaft.vol +4291 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.in2d +17 -0
- ngsolve-6.2.2506.post74.dev0.data/data/share/ngsolve/square.vol +149 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/METADATA +13 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/RECORD +315 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/WHEEL +5 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/licenses/LICENSE +504 -0
- ngsolve-6.2.2506.post74.dev0.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
#ifndef FILE_H1HOFE
|
|
2
|
+
#define FILE_H1HOFE
|
|
3
|
+
|
|
4
|
+
/*********************************************************************/
|
|
5
|
+
/* File: h1hofe.hpp */
|
|
6
|
+
/* Author: Start */
|
|
7
|
+
/* Date: 6. Feb. 2003 */
|
|
8
|
+
/*********************************************************************/
|
|
9
|
+
|
|
10
|
+
#include "tscalarfe.hpp"
|
|
11
|
+
|
|
12
|
+
namespace ngfem
|
|
13
|
+
{
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
/// default shape function engine for high order h1-elements
|
|
17
|
+
template <ELEMENT_TYPE ET> class H1HighOrderFE_Shape;
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
High order finite elements for H1. These are the actual finite
|
|
22
|
+
element classes to be used.
|
|
23
|
+
shape functions are provided by the shape template
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
template <ELEMENT_TYPE ET,
|
|
27
|
+
class SHAPES = H1HighOrderFE_Shape<ET>,
|
|
28
|
+
class BASE = T_ScalarFiniteElement< SHAPES, ET> >
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class H1HighOrderFE : public BASE, public ET_trait<ET>, public VertexOrientedFE<ET>
|
|
32
|
+
{
|
|
33
|
+
protected:
|
|
34
|
+
|
|
35
|
+
enum { DIM = ET_trait<ET>::DIM };
|
|
36
|
+
|
|
37
|
+
using ScalarFiniteElement<DIM>::ndof;
|
|
38
|
+
using ScalarFiniteElement<DIM>::order;
|
|
39
|
+
|
|
40
|
+
using ET_trait<ET>::N_VERTEX;
|
|
41
|
+
using ET_trait<ET>::N_EDGE;
|
|
42
|
+
using ET_trait<ET>::N_FACE;
|
|
43
|
+
using ET_trait<ET>::N_CELL;
|
|
44
|
+
using ET_trait<ET>::FaceType;
|
|
45
|
+
using ET_trait<ET>::GetEdgeSort;
|
|
46
|
+
using ET_trait<ET>::GetFaceSort;
|
|
47
|
+
using ET_trait<ET>::PolDimension;
|
|
48
|
+
using ET_trait<ET>::PolBubbleDimension;
|
|
49
|
+
|
|
50
|
+
typedef unsigned char TORDER;
|
|
51
|
+
|
|
52
|
+
/// order of edge shapes
|
|
53
|
+
std::array<TORDER, N_EDGE> order_edge;
|
|
54
|
+
|
|
55
|
+
/// order of face shapes
|
|
56
|
+
std::array<IVec<2,TORDER>, N_FACE> order_face;
|
|
57
|
+
|
|
58
|
+
/// order of internal shapes (3d only)
|
|
59
|
+
std::array<IVec<3,TORDER>, N_CELL > order_cell;
|
|
60
|
+
|
|
61
|
+
bool nodalp2 = false;
|
|
62
|
+
|
|
63
|
+
public:
|
|
64
|
+
using VertexOrientedFE<ET>::SetVertexNumbers;
|
|
65
|
+
using ET_trait<ET>::ElementType;
|
|
66
|
+
|
|
67
|
+
INLINE void SetNodalp2() { nodalp2 = true; }
|
|
68
|
+
|
|
69
|
+
/// minimal constructor, orders will be set later
|
|
70
|
+
INLINE H1HighOrderFE () { ; }
|
|
71
|
+
|
|
72
|
+
/// builds a functional element of order aorder.
|
|
73
|
+
INLINE H1HighOrderFE (int aorder)
|
|
74
|
+
{
|
|
75
|
+
ndof = PolDimension (aorder);
|
|
76
|
+
for (int i = 0; i < N_VERTEX; i++) this->SetVertexNumber(i,i);
|
|
77
|
+
for (int i = 0; i < N_EDGE; i++) order_edge[i] = aorder;
|
|
78
|
+
for (int i = 0; i < N_FACE; i++) order_face[i] = aorder;
|
|
79
|
+
if (DIM == 3) order_cell[0] = aorder;
|
|
80
|
+
|
|
81
|
+
order = aorder;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// virtual NGS_DLL_HEADER ~H1HighOrderFE () { ; }
|
|
85
|
+
/// set edge orders
|
|
86
|
+
template <typename TA>
|
|
87
|
+
void SetOrderEdge (const TA & oe)
|
|
88
|
+
{ for (int i = 0; i < N_EDGE; i++) order_edge[i] = oe[i]; }
|
|
89
|
+
|
|
90
|
+
/// set edge order for edge nr
|
|
91
|
+
void SetOrderEdge (int nr, int order) { order_edge[nr] = order; }
|
|
92
|
+
|
|
93
|
+
/// set isotropic or anisotropic face orders
|
|
94
|
+
template <typename TA>
|
|
95
|
+
void SetOrderFace (const TA & of)
|
|
96
|
+
{ for (int i = 0; i < N_FACE; i++) order_face[i] = of[i]; }
|
|
97
|
+
|
|
98
|
+
/// set anisotropic face order for face nr
|
|
99
|
+
void SetOrderFace (int nr, IVec<2> order) { order_face[nr] = order; }
|
|
100
|
+
|
|
101
|
+
/// set anisotropic cell order
|
|
102
|
+
void SetOrderCell (IVec<3> oi) { order_cell[0] = oi; }
|
|
103
|
+
|
|
104
|
+
/// compute the element space dimension
|
|
105
|
+
void ComputeNDof()
|
|
106
|
+
{
|
|
107
|
+
ndof = N_VERTEX;
|
|
108
|
+
for (int i = 0; i < N_EDGE; i++)
|
|
109
|
+
ndof += order_edge[i] - 1;
|
|
110
|
+
for (int i = 0; i < N_FACE; i++)
|
|
111
|
+
ndof += ::ngfem::PolBubbleDimension (FaceType(i), order_face[i]);
|
|
112
|
+
if (DIM == 3)
|
|
113
|
+
ndof += PolBubbleDimension (order_cell[0]);
|
|
114
|
+
|
|
115
|
+
TORDER ho = 1;
|
|
116
|
+
for (int i = 0; i < N_EDGE; i++) ho = max2(ho, order_edge[i]);
|
|
117
|
+
for (int i = 0; i < N_FACE; i++) ho = max2(ho, Max (order_face[i]));
|
|
118
|
+
if (DIM == 3) order = max2 (ho, Max (order_cell[0]));
|
|
119
|
+
order = ho;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
HD virtual tuple<int,int,int,int> GetNDofVEFC () const override
|
|
123
|
+
{
|
|
124
|
+
int nv = N_VERTEX;
|
|
125
|
+
int ne = 0, nf = 0, nc = 0;
|
|
126
|
+
|
|
127
|
+
for (int i = 0; i < N_EDGE; i++)
|
|
128
|
+
ne += order_edge[i] - 1;
|
|
129
|
+
|
|
130
|
+
for (int i = 0; i < N_FACE; i++)
|
|
131
|
+
nf += ::ngfem::PolBubbleDimension (FaceType(i), order_face[i]);
|
|
132
|
+
|
|
133
|
+
if (DIM == 3)
|
|
134
|
+
nc += PolBubbleDimension (order_cell[0]);
|
|
135
|
+
return { nv, ne, nf, nc };
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
virtual bool DualityMassDiagonal () const override
|
|
140
|
+
{
|
|
141
|
+
return (ET == ET_SEGM) || (ET == ET_TRIG) || (ET == ET_QUAD)
|
|
142
|
+
|| (ET == ET_HEX) || (ET == ET_TET) || (ET == ET_POINT);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
#ifdef FILE_H1HOFE_CPP
|
|
151
|
+
|
|
152
|
+
#define H1HOFE_EXTERN
|
|
153
|
+
#include <h1hofe_impl.hpp>
|
|
154
|
+
#include <tscalarfe_impl.hpp>
|
|
155
|
+
|
|
156
|
+
#else
|
|
157
|
+
|
|
158
|
+
#define H1HOFE_EXTERN extern
|
|
159
|
+
|
|
160
|
+
#endif
|
|
161
|
+
|
|
162
|
+
namespace ngfem
|
|
163
|
+
{
|
|
164
|
+
H1HOFE_EXTERN template class H1HighOrderFE<ET_POINT>;
|
|
165
|
+
extern template class H1HighOrderFE<ET_SEGM>;
|
|
166
|
+
extern template class H1HighOrderFE<ET_TRIG>;
|
|
167
|
+
extern template class H1HighOrderFE<ET_QUAD>;
|
|
168
|
+
|
|
169
|
+
extern template class H1HighOrderFE<ET_TET>;
|
|
170
|
+
extern template class H1HighOrderFE<ET_PRISM>;
|
|
171
|
+
extern template class H1HighOrderFE<ET_PYRAMID>;
|
|
172
|
+
H1HOFE_EXTERN template class H1HighOrderFE<ET_HEXAMID>;
|
|
173
|
+
extern template class H1HighOrderFE<ET_HEX>;
|
|
174
|
+
|
|
175
|
+
H1HOFE_EXTERN template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_POINT>, ET_POINT>;
|
|
176
|
+
extern template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_SEGM>, ET_SEGM>;
|
|
177
|
+
extern template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_TRIG>, ET_TRIG>;
|
|
178
|
+
extern template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_QUAD>, ET_QUAD>;
|
|
179
|
+
|
|
180
|
+
extern template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_TET>, ET_TET>;
|
|
181
|
+
extern template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_PRISM>, ET_PRISM>;
|
|
182
|
+
extern template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_PYRAMID>, ET_PYRAMID>;
|
|
183
|
+
H1HOFE_EXTERN template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_HEXAMID>, ET_HEXAMID>;
|
|
184
|
+
extern template class T_ScalarFiniteElement<H1HighOrderFE_Shape<ET_HEX>, ET_HEX>;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
#endif
|