FiniteVolumeMethod

Solver for two-dimensional conservation equations using the finite volume method in Julia.

https://github.com/sciml/finitevolumemethod.jl

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary

Keywords

finite-volume-method partial-differential-equations

Keywords from Contributors

meshing numerical-methods numerical interpretability standardization animal hack
Last synced: 9 months ago · JSON representation

Repository

Solver for two-dimensional conservation equations using the finite volume method in Julia.

Basic Info
  • Host: GitHub
  • Owner: SciML
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 307 MB
Statistics
  • Stars: 46
  • Watchers: 4
  • Forks: 5
  • Open Issues: 1
  • Releases: 26
Topics
finite-volume-method partial-differential-equations
Created over 3 years ago · Last pushed 10 months ago
Metadata Files
Readme License Zenodo

README.md

FiniteVolumeMethod

DOI Dev Stable Coverage

This is a Julia package for solving partial differential equations (PDEs) of the form

$$ \dfrac{\partial u(\boldsymbol x, t)}{\partial t} + \boldsymbol{\nabla} \boldsymbol{\cdot} \boldsymbol{q}(\boldsymbol x, t, u) = S(\boldsymbol x, t, u), \quad (x, y)^{\mkern-1.5mu\mathsf{T}} \in \Omega \subset \mathbb R^2,t>0, $$

in two dimensions using the finite volume method, with support also provided for steady-state problems and for systems of PDEs of the above form. In addition to this generic form above, we also provide support for specific problems that can be solved in a more efficient manner, namely:

  1. DiffusionEquations: $\partial_tu = \boldsymbol\nabla\boldsymbol\cdot[D(\boldsymbol x)\boldsymbol\nabla u]$.
  2. MeanExitTimeProblems: $\boldsymbol\nabla\boldsymbol\cdot[D(\boldsymbol x)\boldsymbol\nabla T(\boldsymbol x)] = -1$.
  3. LinearReactionDiffusionEquations: $\partial_tu = \boldsymbol\nabla\boldsymbol\cdot[D(\boldsymbol x)\boldsymbol\nabla u] + f(\boldsymbol x)u$.
  4. PoissonsEquation: $\boldsymbol\nabla\boldsymbol\cdot[D(\boldsymbol x)\boldsymbol\nabla u] = f(\boldsymbol x)$.
  5. LaplacesEquation: $\boldsymbol\nabla\boldsymbol\cdot[D(\boldsymbol x)\boldsymbol\nabla u] = 0$.

See the documentation for more information.

If this package doesn't suit what you need, you may like to review some of the other PDE packages shown here.

As a very quick demonstration, here is how we could solve a diffusion equation with Dirichlet boundary conditions on a square domain using the standard FVMProblem formulation; please see the docs for more information.

julia using FiniteVolumeMethod, DelaunayTriangulation, CairoMakie, OrdinaryDiffEq a, b, c, d = 0.0, 2.0, 0.0, 2.0 nx, ny = 50, 50 tri = triangulate_rectangle(a, b, c, d, nx, ny, single_boundary = true) mesh = FVMGeometry(tri) bc = (x, y, t, u, p) -> zero(u) BCs = BoundaryConditions(mesh, bc, Dirichlet) f = (x, y) -> y ≤ 1.0 ? 50.0 : 0.0 initial_condition = [f(x, y) for (x, y) in DelaunayTriangulation.each_point(tri)] D = (x, y, t, u, p) -> 1 / 9 final_time = 0.5 prob = FVMProblem(mesh, BCs; diffusion_function = D, initial_condition, final_time) sol = solve(prob, Tsit5(), saveat = 0.001) u = Observable(sol.u[1]) fig, ax, sc = tricontourf(tri, u, levels = 0:5:50, colormap = :matter) tightlimits!(ax) record(fig, "anim.gif", eachindex(sol)) do i u[] = sol.u[i] end

Animation of a solution

We could have equivalently used the DiffusionEquation template, so that prob could have also been defined by

julia prob = DiffusionEquation(mesh, BCs; diffusion_function = D, initial_condition, final_time)

and be solved much more efficiently. See the documentation for more information.

Owner

  • Name: SciML Open Source Scientific Machine Learning
  • Login: SciML
  • Kind: organization
  • Email: contact@chrisrackauckas.com

Open source software for scientific machine learning

GitHub Events

Total
  • Create event: 2
  • Commit comment event: 2
  • Release event: 1
  • Watch event: 7
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 10
  • Pull request event: 6
  • Fork event: 2
Last Year
  • Create event: 2
  • Commit comment event: 2
  • Release event: 1
  • Watch event: 7
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 10
  • Pull request event: 6
  • Fork event: 2

Committers

Last synced: 11 months ago

All Time
  • Total Commits: 189
  • Total Committers: 3
  • Avg Commits per committer: 63.0
  • Development Distribution Score (DDS): 0.011
Past Year
  • Commits: 9
  • Committers: 1
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
DanielVandH d****l@g****m 187
github-actions[bot] 4****] 1
Leandro Martínez 3****q 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 1
  • Total pull requests: 4
  • Average time to close issues: less than a minute
  • Average time to close pull requests: 5 days
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 71.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 3
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 days
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JuliaTagBot (1)
Pull Request Authors
  • DanielVandH (7)
  • ChrisRackauckas (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • julia 2 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 31
juliahub.com: FiniteVolumeMethod

Solver for two-dimensional conservation equations using the finite volume method in Julia.

  • Versions: 31
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2 Total
Rankings
Dependent repos count: 9.9%
Stargazers count: 29.9%
Average: 33.1%
Dependent packages count: 38.9%
Forks count: 53.5%
Last synced: 9 months ago

Dependencies

.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/DocCleanup.yml actions
  • actions/checkout v2 composite
.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia v1 composite