Commit Graph
21 Commits
Author SHA1 Message Date
Jakub Červený 62117e96dd Added MFEM_DEPRECATED to functions already marked with ///@deprecated 2020-04-11 20:53:35 +02:00
Tzanio 05125e19d5 Removed a space 2020-03-09 15:36:41 -07: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
Jakub Červený 5fdb6d7e4b Starting work on NC prisms. 2018-12-27 18:39:24 +01:00
Veselin Dobrev 265006d59f Remove the method MarkEdge(DenseMatrix &) from the base class
Element - it is only used by class Triangle.

A few more tweaks to suppress compiler warnings.
2018-10-30 16:40:31 -07:00
Veselin Dobrev 0d6d850e09 Updates related to wedge/prism elements and mixed meshes.
List of changes and additions:

* In class Mesh:
  * Replaced the data fields BaseGeom, BaseBdrGeom, and BaseFaceGeom
    with a new data field: mesh_geoms that is a bitwise mask for all
    Geometry::Types found in the (local) Mesh including entities of
    lower dimensions.
  * The new data field mesh_geoms is set by the method SetMeshGen.
  * Removed the (protected) method InitBaseGeom.
  * Add new methods: HasGeometry, GetNumGeometries, and GetGeometries
    that can be used to query the content of mesh_geoms. Also, added
    class Mesh::GeometryList that can simplify such queries too.
  * The methods GetFaceBaseGeometry, GetElementBaseGeometry, and
    GetBdrElementBaseGeometry no longer have a default value for
    their input parameter (the entity index) and accept only values
    within their respective ranges.
  * Removed the parameter of the method GetRefinementTransforms.
  * Updated the methods PrepareNodeReorder and DoNodeReorder to
    support mixed meshes.
  * In parallel, the data field meshgen is now required to represent
    information about the global mesh - updated relevant ParMesh
    methods.
  * Made any required changes outside of class Mesh due to the above
    changes.
  * Made various tweaks and improvements in the following methods:
      CheckBdrElementOrientation, Mixed2DUniformRefinement,
      Mixed3DUniformRefinement, UniformRefinement, and
      GeneralRefinement.
  * Updated the method PrintCharacteristics to print the types of
    elements, boundary elements and faces used in the mesh.
  * In the method ReadInlineMesh, replace remaining "pri" strings
    with "wedge".
  * In the mesh reader method ReadGmshMesh, recover the term "prism"
    in the comments - it was replaced, unintentionally, I assume,
    by "wedge".

* Add support for refinement of curvilinear mixed meshes:
  * In class FiniteElementSpace, updated the methods:
    GetLocalRefinementMatrices, GetLocalDerefinementMatrices,
    RefinementMatrix, RefinementMatrix_main, as well as class
    RefinementOperator to support mixed meshes.
  * Add two new meshes: star-mixed-p2.mesh and fichera-mixed-p2.mesh
    which represent examples of quadratic mixed meshes in 2D and 3D,
    respectively.
  * Add sample runs in ex1/ex1p using the new quadratic mixed meshes.

* In class Geometry:
  * In the enumeration Type: removed the constant MIXED and added
    new constant: NUM_GEOMETRIES.
  * Add new static data field: DimStart[] that indexes the Types by
    dimension: the Types of dimension 'd' are given by the range
    [ DimStart[d], DimStart[d+1] ).

* In class ParNCMesh, added method GetGhostFaceGeometry that,
  for now, returns Geometry::SQUARE.

* Update the return type of the method DofOrderForOrientation in
  class FiniteElementCollection (and all derived classes) from
  'int *' to 'const int *'.

* Removed the virtual method Element::GetRefinementFlag and made
  the only relevant derived version (in class Tetrahedron),
  non-virtual.

* In class Tetrahedron, added method Init.

* Added FIXME comments for some outstanding issues.

* In the mesh-explorer miniapp:
  * Added option to enable or disable the 'refine' parameter when
    reading a mesh from file.
  * In the 'jitter' menu option, ask the user if the boundary
    nodes should be moved or not.
  * In the 'Print sub-element stats' menu option, count and print
    bad/inverted elements by their Geometry::Type as well.
2018-09-10 14:22:14 -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 1e100b3f26 Merge remote-tracking branch 'origin/master' into prism-dev
# Conflicts:
#	mesh/pmesh.cpp
2018-08-17 21:51:16 -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
Veselin Dobrev d949c58e7d Some code cleanup and minor tweaks. 2018-07-24 21:47:32 -07:00
aschaf 3552fc6223 Fix for (serial) AMR of tetrahedral meshes
Added two new functions to Mesh:
   > Bisection(int, HashTable<Hashed2> &)
   > BdrBisection(int, HashTable<Hashed2> &)
which are adapted to the new data structure.
Added also an overload to Element::NeedRefinement with HashTable<Hashed2> and implemented it for Tetrahedron and Triangle.
Rewrote the tetrahedron case in  LocalRefinement by changing the DSTable v_to_v to an HashMap<Hashed2> object.
2018-07-18 13:41:04 +02:00
Stowell, Mark L 10ac646d18 Adding INVALID and MIXED to the element type and geometry type enumerations. Also adding a static member function to map between the enumerations. 2017-11-08 21:09:18 -08:00
Stowell, Mark L 4e768e68e2 Modifying Elements to use their Element::Type enumeration rather than "int" 2017-11-08 17:22:48 -08:00
Stowell, Mark L a92e32e388 Adding initial changes to support Prisms 2017-10-30 11:10:06 -07:00
Jakub Cerveny 125ff226e4 Version 3.2 2016-06-30 10:37:30 -07:00
Tzanio dbae60fe32 Version 3.1 2016-02-16 15:45:48 -08:00
Tzanio Kolev 9d7774a03e Version 3.0 2015-01-26 15:07:34 -08:00
Tzanio Kolev fa169e4b92 Version 2.0 2011-11-18 11:39:53 -08:00
Tzanio Kolev 29ae8fb6ac Version 1.2 2011-04-08 15:27:24 -07:00
Tzanio Kolev 6bfa95b718 Version 1.0 2010-07-21 13:14:05 -07:00