Recent Releases of gyselalibxx
gyselalibxx - Version 0.2.0
What's New
Added
- Add a Gyroaverage operator with tests for circular geometry.
- Curvilinear coordinate change classes have an O-point method to retrieve the O-point in the non-curvilinear coordinates.
- Add a batched
operator()toDiscreteToCartesianallowing a field of coordinates to be converted. - Add a
LiePoissonBracket::operator()overload which takes a 2D tensor as the second argument to the bracket. - Add a function
PDI_expose_vector_fieldto output a vector field via PDI. - Add a
control_pointsmethod toDiscreteToCartesianto allow all control points to be retrieved at once.
Fixed
- Fix uninitialized warning in the
Tensorclass. - Fix unused
m_magnetic_fieldvariable inMaxwellianEquilibriumclass. - Fix break points incorrectly labelled as knots.
- Fix minimum version requirement of Kokkos.
- Fix tolerance of floating point comparisons in JacobianMatrixAndJacobianCoefficients and MultipatchSplineEvaluatorTest tests
- Fix unnecessary
std::movecalls. - Fix missing assertion in
LeviCivitaTensorto prevent division by 0 when Jacobian is calculated at singular point. - Fix bad result of
is_tensor_vforIdentityTensor.
Changed
- Change the interface of
IVlasovSolverandIQNSolveringeometryXYVxVyto store the electric field in aVectorField. - Integration of
ddc::StridedDiscreteDomainby makingIdxRangeSlicea type alias. - The parameter
iter_starthas been removed from the constructor ofRestartInitialisation. - Generalise
compute_coeffs_on_mappingto work with any mapping. - Rely on GPU-aware MPI to allow GPU-direct MPI for
MPITransposeAllToAll. - Curvilinear coordinate change classes take a
Coordtype to specify the O-point in the constructor. - Allow
init_discrete_spaceto be used to initialisePolarBSplineswith a GPU-basedDiscreteToCartesiancoordinate change operator.
Deprecated
## Contributors
- @AbdelhadiKara
- @EmilyBourne
- @etiennemlb
- @gdgirard
- @tpadioleau
- @yasahi-hpc
Full list of changes: v0.1.1..v0.2.0
- C++
Published by github-actions[bot] 8 months ago
gyselalibxx - Version 0.1.1
What's New
Fixed
- Fix paths in root
CMakeLists.txtfile to ensure it can be correctly used in a submodule. - Update remaining use of
ddc::Coordinateto use Gyselalib++ conventions (Coord). - Update coding conventions to match what is applied.
## Contributors
- @EmilyBourne
Full list of changes: v0.1.0..v0.1.1
- C++
Published by github-actions[bot] 9 months ago
gyselalibxx - Version 0.1.0
What's New
Added
- First release of Gyselalib++
- Advection operators
- 1D Semi-Lagrangian spatial advection ($
\frac{df_s}{dt}= \sqrt{\frac{m_e}{m_s}} v \frac{\partial f_s}{\partial x}$) - 1D Semi-Lagrangian velocity advection ($
\frac{df_s}{dt}= q_s \sqrt{\frac{m_e}{m_s}} E \frac{\partial f_s}{\partial v}$) - 1D Semi-Lagrangian advection with a provided advection field
- 2D Semi-Lagrangian advection on a polar plane with a provided advection field
- 1D Semi-Lagrangian spatial advection ($
- Collisions
- Collision operator in $
(v_\parallel,\mu)$
- Collision operator in $
- Coordinate transformation operators and tools
- Coordinate transformation operators
- Triangular Barycentric coordinates <-> Cartesian coordinates
- Circular coordinates <-> Cartesian coordinates
- Cylindrical coordinates <-> Cartesian coordinates
- Tokamak-shaped Czarny coordinates <-> Cartesian coordinates
- Toroidal coordinates -> Cylindrical coordinates
- Discrete coordinates -> Cartesian coordinates
- Identity transformation
- Composite coordinate transformation
- Tools to manage coordinate transformations by:
- Getting the inverse Jacobian matrix at a given coordinate
- Getting the inverse Jacobian matrix at the O-point (to provide explicit equations without an if)
- Evaluate the metric tensor at a given coordinate
- Map a vector from one vector space to another
- Additional data types
- DerivativeField to store a field and its boundary derivatives
- VectorField
- Tensor type and tools
- Levi-Civita tensor
- Identity tensor
- Tensor multiplication operator
- Interpolation operators
- Lagrange interpolation
- Spline interpolation
- Polar spline evaluation
- General Mathematical tools
- Methods for calculating the L-norms
- Derivative calculators
- Finite differences method (with and without known boundary values)
- Derivatives from 1D or 2D spline representations
- Constant derivatives of a known value
- Miscellaneous
- sum
- norm
- modulo
- pow for integer powers
- factorial
- min
## Contributors
- @AbdelhadiKara
- @alex-m-h
- @blegouix
- @EmilyBourne
- @etiennemlb
- @gdgirard
- @jbigot
- @PaulineVidal
- @pdonnel
- @peyberne
- @Philipp137
- @protaisM
- @tpadioleau
- @yanmnc
- @yasahi-hpc
- C++
Published by EmilyBourne 9 months ago