Commit Graph
11 Commits
Author SHA1 Message Date
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
Stowell, Mark L 7468366f9a Adding point charges to Volta miniapp 2019-02-13 20:11:27 -08: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
Stowell, Mark L 25c2eff297 Moving electromagnetic constants to a common header. 2017-12-11 11:24:37 -08:00
Stowell, Mark L 13842bb128 Cleanup suggested by Tzanio 2017-12-10 18:55:52 -08:00
Tzanio ab468628a2 Maxwell miniapp developed internally at LLNL.
Based on commits by Mark Stowell:

- Adding time integrators for Hamiltonian systems. This family of integrators is
  taken from the paper "A Symplectic Integration Algorithm for Separable
  Hamiltonian Functions" by J. CANDY AND W. ROZMUS. They do a marvelous job of
  conserving energy in coupled first order PDEs.

- If others agree we should probably move these classes into the linalg/ode.?pp
  files (or other files nearby). First I would like to change the names of these
  integrators so if anyone has a suggestion...

- This is a first draft of a time domain electromagnetics code. It is not yet
  ready for trials but it will soon support two different current sources.

- There are many ways this could advance but we'll try to follow the example set
  in the statics codes and keep it simple.

- Renamed the symplectic integration solvers to follow a convention implied in
  the paper describing them. It also fits fairly well with the other ODE solvers
  in MFEM.

- Improved the way source terms are handled. Also fixed a problem with the field
  update.

- Moving the Symplectic integrator methods to the ode.?pp files.

- Changing the ess_tdof array argument to 'const' so that FormLinearSystem can
  be used inside an ODE integrator.

- Modified VectorFECurlIntegrator so that it can compute either the Curl of an
  H(curl) vector or the weak Curl of an H(div) vector.

- Adding a simple test of the symplectic integrator which integrates a scalar
  valued ODE in time. The test code writes a datafile and a gnuplot input file
  which can plot the datafile.

- Added support for Dirichlet boundary conditions. The code is still in a very
  immature state but various features have been successfully tested. It now
  remains to simplify and clean up the implementation and prepare a series of
  example problems.

- Making some changes to conform to the new makefile design (which is a big
  improvement by the way)

- First draft of a Halbach array example.

- Small post-merge changes
2017-05-02 16:24:57 -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
Tzanio dbae60fe32 Version 3.1 2016-02-16 15:45:48 -08:00