Commit Graph
58 Commits
Author SHA1 Message Date
Tzanio 6d2530775b Extended copyright to 2022 2022-02-25 10:24:50 -08:00
Tzanio Kolev 9a016d8565 Merge pull request #2733 from mfem/shadow-fe-dev
Fixing shadowed variables in fem/fe classes [shadow-fe-dev]
2022-02-25 10:04:21 -08:00
Stowell, Mark L 63381b366a Renaming ostream variables from out to os 2022-01-18 15:06:46 -08:00
Stowell, Mark L 83dfc17738 Fixing shadowed variables in fem/fe classes 2021-12-22 16:45:55 -08:00
Stowell, Mark L f7c9bdab17 Renaming "out" and "err" local variables to avoid globals 2021-12-22 15:19:20 -08:00
Will Pazner fe08c6bd36 Add mesh data member to ElementTransformation 2021-11-09 15:55:36 -08:00
Stowell, Mark L 5da7d11d8b Adding LinearPyramidFiniteElement 2021-07-08 16:22:06 -07:00
Adrien M. Bernede 04fb572359 Let's forget about 2020 2021-01-26 11:55:36 -08:00
Stowell, Mark L f8f928028c Merge remote-tracking branch 'origin/gf-getgradient-dev' into bugfix/gf-getvalue-dev
# Conflicts:
#	mesh/pmesh.cpp
#	tests/unit/fem/test_get_value.cpp
2020-06-23 19:05:29 -07:00
Veselin Dobrev 126e75048c Merge branch 'master' into gf-getgradient-dev 2020-06-22 14:15:58 -07:00
Veselin Dobrev 5f34f7f9a9 In class FaceElementTransformations, rename the parameter 'ip'
in the methods SetIntPoint and SetAllIntPoints to 'face_ip'.

In ex18.hpp, use FaceElementTransformations::SetAllIntPoints
instead of FaceElementTransformations::SetIntPoint.

In class DGDirichletLFIntegrator, evaluate the diffusivity
coefficient (Q or MQ) through the volume transformation to
support use cases where it is defined based on the volume
attributes.
2020-06-22 14:08:47 -07:00
Veselin Dobrev a25138e611 Add an optional output stream parameter to the new method
FaceElementTransformations::CheckConsistency and improved its
documentation.

Extended Mesh::GetFaceGeometryType to support ghost child faces
and use this to generalize ParFiniteElementSpace::GetFaceNbrFaceFE
to support all face types.

Cleanup some old and debug code.
2020-06-19 20:43:47 -07:00
Stowell, Mark L f7aa1d9972 Adding FaceElementTransformations::SetAllIntPoints method 2020-06-19 15:32:50 -07:00
Stowell, Mark L d72ff9948b Adding an enumeration for the FaceElementTransformations mask values 2020-06-18 16:34:59 -07:00
Veselin Dobrev 6604ba702c WIP: debugging and bugfix for the issue with hybridization on 2D
nonconforming meshes, see issue #1105 on github.
2020-06-16 21:09:48 -07:00
Stowell, Mark L 15e0e4d1aa Setting default value for ElementTransformation::geom 2020-05-05 10:48:28 -07:00
Stowell, Mark L 8592a79c3d Removing ActiveSide concept from FaceElementTransformations 2020-04-29 16:54:19 -07:00
Stowell, Mark L 9900068b7a Adding error checking to FaceElementTransformations 2020-04-24 15:16:33 -07:00
Stowell, Mark L 0be1846a73 Merge remote-tracking branch 'origin/master' into gf-getvalue-dev
# Conflicts:
#	mesh/pmesh.cpp
2020-04-14 10:29:23 -07:00
Tzanio 24818bf0d9 Merge branch 'master' into setpointmat-dev 2020-04-07 13:34:09 -07:00
Stowell, Mark L 8b81c29b2b Merge remote-tracking branch 'origin/master' into gf-getvalue-dev
# Conflicts:
#	fem/datacollection.cpp
#	fem/gridfunc.hpp
2020-03-12 20:56:28 -07:00
Stowell, Mark L b33654bfa4 make style 2020-03-12 18:00:42 -07:00
Stowell, Mark L 540e4deb5f Removing unnecessary recursive method call 2020-03-12 15:36:24 -07:00
Stowell, Mark L 80158f14b6 Removing unnecessary temporary variable 2020-03-12 15:35:44 -07:00
Tzanio 05125e19d5 Removed a space 2020-03-09 15:36:41 -07:00
Jakub Červený 513fdc2692 Added IsoparamTransformation::SetPointMat, removed FinalizeTransformation. 2020-03-06 21:15:10 +01:00
Tzanio ca55ef0217 The release number for mfem-4.1 is LLNL-CODE-806117 2020-03-02 17:18:46 -08:00
Tzanio 2caa222edf A number of changes to switch the code from LGPL-2.1 to BSD-3:
- Updated LICENSE, README, CHANGELOG and CONTRIBUTING.md
- Removed COPYRIGHT, added NOTICE
- Updated the headers in all source files, makefiles, etc.
2020-02-23 11:16:46 -08:00
Tzanio 7b341baf1a minor changes 2020-02-16 23:28:38 -08:00
Stowell, Mark L 11cde1acdd Promoting FaceElementTransformation to a subclass of IsoparametricTransformation 2019-12-16 21:50:15 -08:00
Stowell, Mark L 37408efcae Adding convenience methods to FaceElementTransformations class 2019-12-15 23:34:49 -08:00
Ido Akkerman c606ff21d5 Merge branch 'master' into laplacian_dev 2019-06-05 09:41:55 +02: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
Ido Akkerman ad6af65f4f Remove nonsense inverse of hessian 2018-08-27 12:35:28 +02:00
Ido Akkerman c012444bfa Cleaning up. 2018-08-24 12:34:07 +02:00
Ido Akkerman 056415919e Debug almast there?? 2018-08-22 19:23:28 +02: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 cbb2b2b272 make style 2018-01-17 21:50:30 -08:00
Stowell, Mark L 20d6e495ac Switching to GeomType enumeration in a few more places 2018-01-12 15:05:12 -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
Veselin Dobrev 6b572a01d4 Address a few more warnings and feedback from the PR (#379). 2017-12-10 19:43:56 -08:00
Tzanio 6741c90ba9 Merge branch 'master' into mfem-3.3.2-dev 2017-11-09 20:05:45 -08:00
Veselin Dobrev 5918938909 Fix a bug in InverseElementTransformation::Transform - the case of
order == 0 was not handled correctly.

In GeometryRefiner::Refine, do not allow the parameters Times and
ETimes to be less than one.
2017-11-09 19:36:50 -08:00
Tzanio 51ac9e89f9 Replaced some std::cout with mfem::out 2017-11-09 13:04:49 -08:00
Veselin Dobrev 3990696696 Modified class GeometryRefiner to use the Quadrature1D point types,
so that open-type quadrature (i.e. without the end points) can also
be used for refinement.

Enhanced class InverseElementTransformation with more options, set
by the methods SetInitGuessPointsType() and SetInitGuessRelOrder()
which control the type and order of the initial guess refinement
used by the Closest* initial guess types.
2017-11-07 17:26:28 -08:00
Veselin Dobrev 205fa9b394 Add a new class, InverseElementTransformation, that implements several
ElementsTransformation inversion algorithms, and serves as a base class
for other, e.g. custom, implementations. The new class contains all
previous implementations of ElementTransformation::TransformBack() and
adds a some new options.

The method IsoparametricTransformation::TransformBack() is now
implemented by simply constructing a InverseElementTransformation object
(with default options) and calling its Transform() method.

Updated the methods Mesh::FindPoints() and ParMesh::FindPoints() to
accept an optional argument of type InverseElementTransformation,
allowing more flexibility through customization of the transformation
inversion algorithm. In ParMesh::FindPoints(), when the i-th point was
found by one or more ranks, the output entry elem_ids[i] will be set to
-2 (except on the rank that is assigned that point) to indicate that the
i-th point was found but assigned to another rank - this value allows
all ranks to distinguish this case from the case when a point was not
found by any rank - indicated by elem_ids[j] set to -1.

Added two new methods to class ElementTransformation: GetGeometryType()
and GetDimension(). To aviod making these new methods virtual (and to
make the existing method GetSpaceDim() non-virtual), added data fields
'geom' and 'space_dim' to the base class ElementTransformation. In order
to facilitate the initialization of those fields for class
IsoparametricTransformation, added new method, FinalizeTransformation().
This method must be called after setting the point-matrix and the finite
element of the IsoparametricTransformation - all such places in MFEM
have been updated to perform that call.

Add new version of Geometry::ProjectPoint() that projects points outside
the reference element to the closest boundary point of the element.

Updated class GeometryRefiner to allow simultaneous use by different
places in a code - new calls to the Refine() and RefineInterior()
methods will not destroy previously allocated and returned objects by
the same calls.
2017-11-05 23:33:04 -08:00
Stowell, Mark L bec7973784 Starting to add prism support to eltrans and fe_coll 2017-10-31 11:31:35 -07:00
Kenneth Weiss b73287232e Lowered tolerances in IsoparametricTransformation's TransformBack.
There were some edge cases on an element's boundary where
the solver converged, but the original tolerance of 1e-15 was too low.
Changing the tolerances to 1e-14 fixes this while still
passing all tests for transforming points back and forth.
2017-10-18 10:43:06 -07:00
Kenneth Weiss 9d6593246a Added overload with option to set refinement order in TransformBack
The refinement order is used to choose the initial IntegrationPoint
for the Newton-Raphson solve in IsoparametricTransformation's TransformBack
function. The default value is to use the elements order.

Also added a new public function to IsoparametricTransfomation to find
the closest IntegrationPoint within an element to a given point in space.
This function uses the elements RefinedIntules for the given order.
2017-10-18 10:42:47 -07:00
Tzanio 0ad01a040d Cosmetic 2017-10-18 10:41:48 -07:00