Commit Graph
74 Commits
Author SHA1 Message Date
camierjs db6ac1970e Peach 1/4 && Cleanup 2019-06-09 21:23:11 -07:00
camierjs bcce24f6f1 ex24 with PA 2019-06-08 19:30:59 -07:00
camierjs 3e6d242b03 WIP non-square J for sdim=3 and dim=2 2019-06-07 16:00:19 -07:00
Veselin Dobrev cdbcc9e5e1 Integrate class DofToQuad with the FiniteElement class.
Rename class ElemRestriction to ElementRestriction and integrate
it with class FiniteElementSpace; it is accessible with the method
FiniteElementSpace::GetElementRestriction().

Rename class XTMesh to GeometricFactors and remove invJ from the
possible geometric factors.

Introduce class QuadratureInterpolator (created and owned by class
FiniteElementSpace) that interpolates E-vectors to quadrature points,
see FiniteElementSpace::GetQuadratureInterpolator().

Switch the layouts of the E-vectors and Q-vectors to have the
local (element) DOFs and quadrature points, respectively, as the
fastest changing index.
2019-05-22 07:19:44 -07:00
Veselin Dobrev 004e664f18 Fix valgrind warnings in:
* NodalFiniteElement::GetLocalRestriction(),
* VectorFiniteElement::LocalRestriction_RT(), and
* VectorFiniteElement::LocalRestriction_ND().
2019-01-08 11:57:15 -08:00
Veselin Dobrev f9e7fb2bd7 Add support for derefinement of Nedelec spaces (ND_FECollection) 2018-12-21 16:23:10 -08:00
Veselin Dobrev 9807f9dba6 Add support for derefinement of spaces using RT_FECollection. 2018-11-27 19:46:49 -08:00
Stowell, Mark L 46c7a80c65 Merge remote-tracking branch 'origin/master' into pos-vector-basis-dev 2018-10-10 21:27:06 -07:00
Stowell, Mark L f049206f6c Implementing PositiveFiniteElement::Project for vector coefficients 2018-10-01 13:56:18 -07:00
Veselin Dobrev b4c143c40d A number of proposed tweaks for merging into prism-dev.
* Removed the fixed low-order finite element classes for wedges.
* Replace more cases of 'int' variables with 'Geometry::Type',
  mainly in class FiniteElement and its derived classes.
* Use constants from BasisType (instead of Quadrature1D) in the
  parameters of the *WedgeElement finite element classes.
* Impose ordering on the construction of some global objects by
  moving them into the same translation unit: specifically, moved
  the objects 'TriangleFE', 'TetrahedronFE', 'WedgeFE', and
  'Geometries' into fem/fe.cpp.
* In switchs on 'Geometry::Type', move the 'Geometry::PRISM' case
  last - just to follow the order in the enumeration.
* Add a new method CoarseFineTransformations::GetPointMatrices
  that simplifies some code that uses CoarseFineTransformations.
* Removed the 'INVALID' and 'MIXED' constants from the enum
  Element::Type.
* Remove the static method Element::GeometryType.
* Tweak some doxygen comments in the classes Embedding and
  CoarseFineTransformations.
* Generate an error if the method Wedge::GetNFaces is called:
  its parameter 'nFaceVertices' does not make sense for wedges.
2018-08-30 16:57:23 -07:00
Stowell, Mark L 7442982ac5 Changing "Prism" to "Wedge" in various places. Geometry::Type intentionally left as Geometry::PRISM 2018-07-25 19:51:40 -07:00
Stowell, Mark L 8d4948dc74 Moving Nedelec prism code to a sub-branch 2018-07-24 15:35:41 -07:00
Stowell, Mark L c3e023deed Merge remote-tracking branch 'origin/master' into prism-dev
# Conflicts:
#	fem/fespace.cpp
2018-07-19 19:51:39 -07:00
aschaf ff25ff7fc7 Changed the formula for the second derivative of the Chebyshev polynomials 2018-07-03 11:14:13 +02:00
Tzanio 8ebd1614a3 better formating 2018-06-28 23:01:59 -07:00
Tzanio dd905c22a1 make style 2018-06-28 22:57:10 -07:00
aschaf f03324b804 H1_TriangleElement & H1_TetrahedronElement: added CalcHessian
I implmented CalcHessian for H1_TriangleElement and H1_TetrahedronElement. The 2nd derivatives in the Hessian are orderd "u_xx, u_xy, u_yy" and "u_xx, u_xy, u_xz, u_yy, u_yz, u_zz", respectively.

Poly_1D was expanded by a third CalcBasis function which takes an additional argument for the 2nd derivative. As only CalcChebyshev is not commented out, I just implemented the 2nd derivatives for the Chebyshev Polynomials, also with an additional argument for the 2nd derivative.
2018-06-16 12:34:36 +02:00
camierjs 3010a0c492 [fem] GetLocalInterpolation(coarse to fine) to GetTransferMatrix 2018-03-15 17:44:54 -07:00
Tzanio cd99e292bb Added entry in CHANGELOG. Other small changes. 2018-02-26 17:40:19 -08:00
Veselin Dobrev cc69da9f08 Introduce a new virtual method GetLocalInterpolation() in class
FiniteElement that generalizes the method with the same name that
computes the local interpolation matrix for h-refinement. The new
method allows the coarse FiniteElement to be different from the fine
FiniteElement and can be used to generate transfer matrix when
h-refinement is combined with p-refinement or p-derefinement.

Implement the new GetLocalInterpolation() method for (essentially) all
finite element classes.
2018-02-25 15:52:02 -08:00
Stowell, Mark L 8adf1bf29c make style 2018-01-26 20:48:27 -08:00
Stowell, Mark L bae718680d Merge remote-tracking branch 'origin/master' into prism-dev
# Conflicts:
#	fem/fespace.cpp
#	fem/pfespace.cpp
2018-01-26 20:44:48 -08:00
Stowell, Mark L f0b59a7371 Adding first draft of Nedelec basis for prisms 2018-01-26 11:24:41 -08:00
Tzanio e47cf10881 Merge branch 'master' into mixednonlin-dev
Conflicts:
	CHANGELOG
	fem/pnonlinearform.cpp
2018-01-25 08:30:03 -08:00
Jamie A. Bramwell 9df947111d Merge branch 'master' into mixednonlin-dev 2018-01-19 09:00:24 -08:00
Veselin Dobrev e8e0e04f0c Fix a bug: in class TensorBasisElement and its derived classes,
NodalTensorFiniteElement and PositiveTensorFiniteElement, add a
parameter to their constructors of a new type, DofMapType, to
indicate the type of basis being constructed: L2 or H1.

Add a new static method BasisType::GetNodalBasis() that converts
a Quadrature1D type to the corresponding nodal BasisType.

Fix a bug: in GeometryRefiner::Refine(), convert the Quadrature1D
type to BasisType before calling poly1d.GetPoints().
2018-01-18 21:53:32 -08:00
Stowell, Mark L 0edcb4a6d6 make style 2018-01-17 21:53:17 -08:00
Tzanio Kolev 564a0e286e Merge pull request #411 from mfem/unused-p1-fix
Unused variables when MFEM_THREAD_SAFE is on [unused-p1-fix]
2018-01-17 08:50:01 -08:00
Stowell, Mark L 6cfc1081d8 Merge remote-tracking branch 'origin/master' into prism-dev
# Conflicts:
#	fem/geom.hpp
#	mesh/mesh.cpp
#	mesh/mesh.hpp
2018-01-16 10:53:03 -08:00
Jamie A. Bramwell 7e6b0be6b7 Merge branch 'master' into mixednonlin-dev 2018-01-16 10:28:56 -08:00
Jamie A. Bramwell 45dfc93db0 make style 2018-01-16 10:13:36 -08:00
Stowell, Mark L 79c0cf83ad Moving declarations to avoid "unused variable" warnings 2018-01-12 11:42:22 -08:00
Stowell, Mark L 8a5a250204 Merge remote-tracking branch 'origin/master' into prism-dev
# Conflicts:
#	fem/fe.cpp
#	fem/fe.hpp
#	fem/fe_coll.cpp
#	fem/geom.cpp
#	fem/geom.hpp
#	mesh/mesh.cpp
2018-01-12 11:36:49 -08:00
Tzanio Kolev 0c3d7ad056 Merge branch 'master' into varnurbs-dev 2018-01-10 08:50:37 -08:00
Veselin Dobrev 72a63f0b49 Make some corrections and simplifications. 2017-12-26 01:58:39 -08:00
Johann Dahm f8a8d72564 Fix indexing error 2017-11-29 22:25:30 -08:00
Stowell, Mark L fb9921fac2 make style 2017-11-28 11:04:00 -08:00
Stowell, Mark L dd94a5ce4a Fixed a face orientation bug 2017-11-27 20:36:40 -08:00
Stowell, Mark L 77d0d01dd0 Adding L2 finite elements for prisms 2017-11-24 15:32:51 -08:00
Stowell, Mark L ca56e2e6b5 Using the proper function space type so that higher order integration rules will be used for prisms 2017-11-24 11:21:29 -08:00
Stowell, Mark L 9793b393c5 Defining nodes for H1 Prisms elements 2017-11-24 11:20:27 -08:00
Veselin Dobrev 03500efb45 In class Geometry, add a constant, MaxDim, currently set to 3.
In class FiniteElement:
* Add a new data field, Orders, that contains the optional anisotropic
  orders used by a FiniteElement; it is initialized to -1.
* Add a new method, HasAnisotropicOrders(), returning true if the first
  component in Orders is set to a value different from -1.
* Replace the virtual method GetOrders() with non-virtula method called
  GetAnisotropicOrders().

Update the NURBSFiniteElement classes to use the new field, Orders,
inherited from the base class.
2017-11-22 15:29:31 -08:00
Veselin Dobrev 224851268e Restore backward compatibility for reading and writing NURBS meshes and
solutions. Restore the NURBS meshes in the data directory to use their
original format.

Add a new FiniteElementSpace format for writing variable-order spaces,
currently implemented for NURBS spaces only. Move the reading of FE
space input in a new method: FiniteElementSpace::Load. Add new default
constructor for FiniteElementSpace that should be used with the Load
method.

Add a bunch of const qualifiers in NURBSExtension and NURBSPatchMap.

Extended the method Mesh::DegreeElevate to make it easier to work with
variable-order NURBS meshes.

In class Array, add copy constructors and copy assignment operators.

Add a number of FIXME comments.
2017-11-21 14:35:05 -08:00
Stowell, Mark L 92d334277e make style 2017-11-20 17:05:01 -08:00
Stowell, Mark L aa754254f1 Implementing H1Pos_PrismElement following H1_PrismElement 2017-11-19 10:15:51 -08:00
Stowell, Mark L c9c6db3ef8 Implementing H1_PrismElement::CalcDShape 2017-11-19 10:15:20 -08:00
Stowell, Mark L 916f400575 Adding H1 and H1Pos finite elements for prisms 2017-11-18 15:43:22 -08:00
Tzanio bbf11c5dc0 Merge branch 'master' into tbasis-dev 2017-11-10 17:02:44 -08:00
Tzanio dff0dd0b48 Merge branch 'master' into varnurbs-dev 2017-11-10 16:55:38 -08:00
Stowell, Mark L 55a3f13bfd make style 2017-11-08 21:16:10 -08:00