Skip to content

v1.0.0

Choose a tag to compare

@DanielVandH DanielVandH released this 10 Sep 06:57
· 32 commits to main since this release

What's Changed

  • Rewrite the mathematical details section to also discuss internal con… by @DanielVandH in #43
  • Cleanup the code significantly, and add support for internal conditions and systems by @DanielVandH in #44
  • Add Aqua and PrecompileTools by @DanielVandH in #45

New features

  • The only remaining part of the interpolant interface is the new pl_interpolate, but it is still recommended that you use NaturalNeighbours.jl.

  • Inhomogeneous Neumann boundary conditions are supported.

  • Internal conditions can now be specified. InternalConditions can be used to specify these conditions. With this change, Conditions has been defined that merges the two condition types.

  • Systems of PDEs are now supported.

  • More general constraints are now supported for boundary or internal conditions, via the Constrained type, although you will have to do the work yourself converting your problem into a differential-algebraic equation to enforce them.

Breaking changes

  • The FVMGeometry struct has now been simplified to use TriangulationStatistics.jl from DelaunayTriangulation.jl, and so all the old fields such as InteriorInformation have been removed. This shouldn't really affect anything since people should just be using e.g. FVMGeometry(::Triangulation), but it is technically breaking.

  • BoundaryConditions has been rewritten to only store basic information about the boundary conditions. It can still be used as before, but inside FVMProblem it gets wrapped in a Conditions type.

  • params in the BoundaryConditions keyword arguments is now parameters.

  • The storage types for the shape function coefficients (other quantities were previously customised, but they got removed from the previous change) is no longer customisable.

  • Boundary conditions must now be specified as Dudt, Dirichlet, or Neumann, with no more support for other specifications such as :Dirichlet or "Dirichlet". You can also specify a condition as Constrained, as mentioned below in case you want to supplement the associated boundary with some custom constraints using e.g. a differential-algebraic equation.

  • Functions and parameters for boundary conditions must now be provided as Tuples, unlike previously where we also allowed vectors. You can still pass bare functions and parameters if you are just using one.

  • The interpolant interface has been removed and replaced with a simpler pl_interpolate function. See also NaturalNeighbours.jl.

  • The reaction function has been changed to source, so in FVMProblem you need to use source_function=... and source_parameters=... instead of reaction_function=... and reaction_parameters=....

  • The iip_flux argument has been removed in FVMProblem. Instead, all flux functions need to return Tuples representing the vector.

  • The delay function and parameters have been removed in FVMProblem, so you can no longer use delay_function=... and delay_parameters=....

  • The flux functions now always have to return a Tuple of numbers, rather than allowing for in-place functions.

  • To declare a problem as steady, you must now wrap a FVMProblem in a SteadyFVMProblem.

  • The parallel argument of solve now accepts Val(true) or Val(false) rather than true or false.

Other

  • The documentation has been cleaned up significantly, and Literate.jl is now used for the examples.

  • The code has been rewritten.

Full Changelog: v0.4.9...v1.0.0