Awesome
eFEMpart.jl
Finite Element code in the Julia language focused on complex fluid-dynamic and porous-media applications, with the possibility of including a particle simulator in the framework of the discrete element method. The 'eFEM' component allows the use of Finite Elements discretizations to solve common problems in fluid dynamics, and the 'part' refers to mesh-free particle methods (discrete element method) primarily aimed at granular-media simulations where continuum constitutive laws are unavailable.
Installation
eFEMpart.jl is an unregistered package couples two other packages together: eFEM.jl and StokesParticles.jl. To install using the REPL, type the following three commands (in order)
pkg> add https://github.com/pseastham/StokesParticles.jl
pkg> add https://github.com/pseastham/eFEM.jl
pkg> add https://github.com/pseastham/eFEMpart.jl
To enter the Pkg environment from the REPL, type ]
.
Meshes
For ractangular geometries, you can use built-in geometry code. For more complicated geometries we suggest building your mesh with an external library (such as GMSH). See the meshes wiki for how this is used in practice.
Equations
For now, eFEMpart provides frameworks to handle systems using the following equations:
- Poisson's Equation (
:Poisson2D
)
- Darcy's Equation (
:Darcy2D
)
- Advection-Diffusion Equation (
:AdvDiff2D
)
- Stokes' Equation (
:Stokes2D
)
- Brinkman's Equation (
:Brinkman2D
)
- Brinkman's Multiphase Equation (
:BrinkmanMP2D
)
All parameterized equations can be solvable with either constant or variable-in-space parameters. Additionally, Axisymmetric version of the Advection-Diffusion and Stokes equations are available with the Operator Types of :AdvDiffAS
and :StokesAS
, respectively.
Equations in this README
were generated by the GitHub app TeXify
Auxiliary Information
Boundary conditions are treated intuitively, based on the mesh given. The functions Dirichlet
, Neumann
, and Robin
allow assignment of boundaries to have certain boundary conditions, and the functions Dirichlet
, Neumann
, Forcing
allow for the definition of the actual boundary conditions at these boundaries. See examples for how this is used in practice.
Visualization
We export all solutions in a legacy VTK format. For visualizing these files, we suggest using VisIt
Examples
Check out the examples folder to see how to use our syntax.
Citing
If you use eFEMpart in published work, I would appreciate you starring this Github page, and using the following citation:
@misc{eFEMpart2019,
author = {Eastham, Patrick S},
title = {{eFEMpart}},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
doi = {10.5281/zenodo.3369788},
howpublished = {\url{https://github.com/pseastham/eFEMpart}},
}