Commit Graph
46 Commits
Author SHA1 Message Date
Stowell, Mark L 774cc3bd68 Typo... oops 2020-06-01 09:28:46 -07:00
Stowell, Mark L 101e5d948c Switching to TetMemory allocation in Cubit mesh reader 2020-05-27 10:42:23 -07:00
Stowell, Mark L 4571095d12 Switch to using TetMemory data structure in ReadGmshMesh 2020-05-27 08:50:45 -07:00
Stowell, Mark L 46e436b819 Correcting comments for clarity 2020-05-26 15:01:56 -07:00
Stowell, Mark L 66939bdf8c Tweaks to comments 2020-05-12 13:52:59 -07:00
Stowell, Mark L b32955bba7 Adding GridFunction coords to ReadGmshMesh 2020-03-30 21:16:00 -07:00
Stowell, Mark L 80d1533590 First draft of Gmsh periodic data parser 2020-03-30 19:42:08 -07: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
Julian Andrej 62df58dd37 Fix reading quadratic hex meshes from cubit 2019-06-14 15:57:36 -07:00
Veselin Dobrev 0f98ddf9f4 Fix a compilation issue caused by the previous commit.
Also, suppress a compiler warning.
2019-03-26 15:19:13 -07:00
Jakub Červený 91ef7e1d96 Merge branch 'master' into mesh-reordering-dev 2019-03-01 14:53:24 +01:00
Jakub Červený 139d71318c Mesh::Make2D and Make3D now allow SFC ordering. 2018-12-14 18:14:51 +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 3b5986bcd4 Add support for reading wedge elements from a VTK mesh.
Both linear and quadratic elements are supported.

In the mesh-explorer miniapp, add a menu option to save the mesh
in VTK format - works for linear and quadratic elements only.
2018-09-28 12:07:54 -07:00
Veselin Dobrev da2fb88a17 Improved uniform refinement of tetrahedral meshes
In class Mesh/ParMesh:
  * Move the serial implementation of UniformRefinement3D to a new
    method: UniformRefinement3D_base. The implementations of the virtual
    method UniformRefinement3D (which now have no parameters) use the
    new UniformRefinement3D_base method.
  * In UniformRefinement3D_base, implemented two algorithms for choosing
    how to split the middle octahedron when refining a tetrahedron by
    cutting off its four corner tets. (These four tets have the same
    shape as the original tet and half the edge-length.) The choice of
    the algorithm is hard-coded in a const variable for now.
  * Add an optional parameter to UniformRefinement which is used to
    choose how to refine tet-only meshes: the default choice is to use
    the new algorithm defined by UniformRefinement3D; the second option
    is to use the old default - call LocalRefinement (marking all
    elements) to perform 3 levels of bisection. The new algorithm
    always produces elements with better shape (aspect ratio) than the
    old default (at least for the meshes in the data/ directory and a
    few other meshes).
  * Make the method Finalize virtual - its implementation in parallel
    requires updates in the ParMesh data.
  * Add a consistency check in ParMesh::ReorientTetMesh that verifies
    the assumption made in the method about the update of the shared
    triangles.
  * Simplify implementation of some methods in class ParMesh by
    separating common code in a new protected method: FinalizeParTopo.

Other updates:
  * In the examples and miniapps, when using a tet-only mesh which is
    first refined uniformly and then locally, it is now necessary to
    call the method Mesh::Finalize(true) (which is now virtual) in order
    to mark the elements for local refinement after the uniform
    refinement.
  * In example 12p, use better random seed values.
  * In examples 3/3p, add a sample run with order=2 on a tet mesh - this
    will test the methods {Mesh,ParMesh}::ReorientTetMesh. Previously,
    these were only tested by one sample run in example 4p.
  * In the mesh-explorer miniapp, add a refinement option to perform
    uniform refinement of tet-only meshes using bisection.
  * In the MFEM_LOCATION macro print the <file> and <line> location
    using a standard format: <file>:<line>, as used by most compilers
    when reporting warnings and errors.
  * Remove FIXME comments about mesh format v1.0.1.
2018-09-27 21:04:58 -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 f948c724bc Fix an issue with quadratic VTK meshes. 2018-08-31 18:51:52 -07:00
Stowell, Mark L d7f0640204 Inline wedge format now uses "wedge" rather than "pri". Also trying to increase code coverage by adding wedge example runs. 2018-08-18 10:31:05 -07:00
Stowell, Mark L 3b55f92b78 Merge with master Aug 2, 2018 2018-08-02 16:05:30 -07:00
Tzanio 4ff1f83372 Mentioned 2D Cubit support in CHANGELOG 2018-07-27 15:29:31 -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 df73fff427 In the CUBIT mesh reader, allow loading of meshes without side-sets. 2018-07-25 14:43:04 -07:00
Jun Kudo 1a3e725327 Style mesh/mesh_readers.cpp 2018-07-05 09:18:44 -07:00
Jun Kudo dbabb7b0f6 Add 2D cubit mesh reader functionality 2018-07-02 13:23:40 -07: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
Tzanio c1d9e20ada Some styling 2018-01-16 13:01:55 -08:00
Jamie A. Bramwell 45dfc93db0 make style 2018-01-16 10:13:36 -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 e7221b44af Merge pull request #384 from mfem/stefanozampini/fix-gmsh-nophysicaldomain
When no physical domain are present, use 1 as material ID to prevent …
2017-12-20 11:19:26 -08:00
Tzanio Kolev 637ea4142d Merge pull request #345 from mfem/stefanozampini/feature-pruneextravertices
Added method to Mesh to prune extra specified vertices
2017-12-18 11:26:47 -08:00
Veselin Dobrev de02cd2150 Add a global option, Mesh::remove_unused_vertices, set to true by
default, that can be used to disable (if set to false) the call to
Mesh::RemoveUnusedVertices() at the end of Mesh::ReadMFEMMesh().
2017-12-12 20:28:49 -08:00
Stefano Zampini 307afc3aee When no physical domain are present, use 1 as material ID to prevent useless errors
Report the error instead of segfaulting when the element is not supported
2017-12-12 17:25:45 +03:00
Stowell, Mark L 92d334277e make style 2017-11-20 17:05:01 -08:00
Stowell, Mark L c911b598e4 Adding an inline prism mesh 2017-11-19 22:05:30 -08:00
Stefano Zampini 2d40603332 Remove new function PruneExtraVertices and use RemoveUnusedVertices instead
Add the call after reading an MFEM mesh format to allow proper visualization of gridfunctions on non-conforming grids from PETSc

Thanks-to: dobrev1@llnl.gov
2017-11-16 15:04:17 +03:00
Tzanio da68d36093 Merge branch 'master' into memoryleak_and_init 2017-11-10 17:04:11 -08:00
Stowell, Mark L 55a3f13bfd make style 2017-11-08 21:16:10 -08:00
Stowell, Mark L 344ee2f115 Initial changes to Mesh class to support Prism meshes. 2017-10-31 16:36:33 -07:00
Veselin Dobrev 3615b3ed6f In general/globals.hpp, do not use non-standard default
constructor for std::ostream.

In mesh/mesh_readers.cpp, sprintf needs #include <cstdio>.
2017-09-29 19:58:37 -07:00
Aaron Fisher aa040f3e64 Made everything work with the new mfem::out and mfem::err output. 2017-09-27 15:42:37 -07:00
Stephan Gelever 45689b174e Fix delete mismatch, close nc file 2017-05-30 15:01:22 -07:00
Stephan Gelever b76ebd56d1 Fix memory leak and init
Early return from mesh print leaks previous memory.
Reading from Netcdf leaks also.
2017-05-30 15:01:03 -07:00
Tzanio 1569425857 Version 3.3 2017-01-28 22:05:47 -08:00
Jakub Cerveny 125ff226e4 Version 3.2 2016-06-30 10:37:30 -07:00