and transfers.
The Memory class is now used by some MFEM classes (like Array and
Vector) which can be used on the Device. Such classes now provide
methods to access the underlying Memory object, e.g. GetMemory.
Updated ex1/ex1p and ex6/ex6p to not need to enable/disable the
Device at specific points -- the Device is now enabled just at the
start. Also, the same examples can now run on Device (e.g. -d cuda)
without the partial assembly option (-pa) -- full assembly will
be still done on CPU but the sparse matrix action and vector
operations will be done using the Device.
Reverted changes in class DenseMatrix related to using the Device.
At this point, DenseMatrix operations are only used for small matrices
and using the Device in this case is not a good option.
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