-
-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cleanup the code significantly, and add support for internal conditions and systems #44
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #44 +/- ##
==========================================
- Coverage 94.44% 91.74% -2.70%
==========================================
Files 8 14 +6
Lines 810 703 -107
==========================================
- Hits 765 645 -120
- Misses 45 58 +13
☔ View full report in Codecov by Sentry. |
DanielVandH
changed the title
Cleanup the code significantly, and add support for internal conditions
Cleanup the code significantly, and add support for internal conditions and systems
Sep 3, 2023
This was
linked to
issues
Sep 3, 2023
Closed
Closed
…arter with the contribution order
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Release notes:
New features
The only remaining part of the interpolant interface is the new
pl_interpolant
, 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 useTriangulationStatistics.jl
from DelaunayTriangulation.jl, and so all the old fields such asInteriorInformation
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 insideFVMProblem
it gets wrapped in aConditions
type.params
in theBoundaryConditions
keyword arguments is nowparameters
.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
, orNeumann
, with no more support for other specifications such as:Dirichlet
or"Dirichlet"
. You can also specify a condition asConstrained
, 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
Tuple
s, 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 tosource
, so inFVMProblem
you need to usesource_function=...
andsource_parameters=...
instead ofreaction_function=...
andreaction_parameters=...
.The
iip_flux
argument has been removed inFVMProblem
. Instead, all flux functions need to returnTuple
s representing the vector.The
delay
function and parameters have been removed inFVMProblem
, so you can no longer usedelay_function=...
anddelay_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 aSteadyFVMProblem
.The
parallel
argument ofsolve
now acceptsVal(true)
orVal(false)
rather thantrue
orfalse
.Other
The documentation has been cleaned up significantly, and Literate.jl is now used for the examples.
The code has been rewritten.