diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json
index 67dfea81..3d6b7da6 100644
--- a/dev/.documenter-siteinfo.json
+++ b/dev/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.10.0","generation_timestamp":"2024-02-06T20:59:00","documenter_version":"1.2.1"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.10.0","generation_timestamp":"2024-02-06T16:42:36","documenter_version":"1.2.1"}}
\ No newline at end of file
diff --git a/dev/api/index.html b/dev/api/index.html
index 4cbe1f77..acb6154c 100644
--- a/dev/api/index.html
+++ b/dev/api/index.html
@@ -1,2 +1,2 @@
-
Take a linear combinations of the tangent vectors at the base point. Use this to get a vector tangent to the sphere in the coordinate system of the base point. If the base point is in spherical coordinates, this is the identity, if the base point is in cartesian coordinates, it returns the tangent vector in cartesian coordinates.
function gensim(d::AbstractNamedDecapode; dimension::Int=2)
Generate a simulation function from the given Decapode. The returned function can then be combined with a mesh and a function describing function mappings to return a simulator to be passed to solve.
Take a linear combinations of the tangent vectors at the base point. Use this to get a vector tangent to the sphere in the coordinate system of the base point. If the base point is in spherical coordinates, this is the identity, if the base point is in cartesian coordinates, it returns the tangent vector in cartesian coordinates.
function gensim(d::AbstractNamedDecapode; dimension::Int=2)
Generate a simulation function from the given Decapode. The returned function can then be combined with a mesh and a function describing function mappings to return a simulator to be passed to solve.
Some users may have trouble entering unicode characters like ⋆ or ∂ in their development environment. So, we offer the following ASCII equivalents. Further, some users may like to use vector calculus symbols instead of exterior calculus symbols where possible. We offer support for such symbols as well.
Some users may have trouble entering unicode characters like ⋆ or ∂ in their development environment. So, we offer the following ASCII equivalents. Further, some users may like to use vector calculus symbols instead of exterior calculus symbols where possible. We offer support for such symbols as well.
When this is scheduled, Decapodes will apply any boundary conditions immediately after the impacted value is computed. This implementation choice ensures that this boundary condition holds true for any variables dependent on this variable, though also means that the boundary conditions on a variable have no immediate impact on the variables this variable is dependent on.
In the visualization below, wee see that the final operation executed on the data is the boundary condition we are enforcing on the change in concentration.
to_graphviz(DiffusionAdvection)
Next we import the mesh we will use. In this case, we are wanting to impose boundary conditions and so we will use the plot_mesh from the previous example instead of the mesh with periodic boundary conditions. Because the mesh is only a primal mesh, we also generate and subdivide the dual mesh.
Rectangle_30x10 is a default mesh that is downloaded via Artifacts.jl when a user installs Decapodes. Via CombinatorialSpaces.jl, we can instantiate any .obj file of triangulated faces as a simplicial set.
using CombinatorialSpaces, CombinatorialSpaces.DiscreteExteriorCalculus
+to_graphviz(DiffusionAdvection)
When this is scheduled, Decapodes will apply any boundary conditions immediately after the impacted value is computed. This implementation choice ensures that this boundary condition holds true for any variables dependent on this variable, though also means that the boundary conditions on a variable have no immediate impact on the variables this variable is dependent on.
In the visualization below, wee see that the final operation executed on the data is the boundary condition we are enforcing on the change in concentration.
to_graphviz(DiffusionAdvection)
Next we import the mesh we will use. In this case, we are wanting to impose boundary conditions and so we will use the plot_mesh from the previous example instead of the mesh with periodic boundary conditions. Because the mesh is only a primal mesh, we also generate and subdivide the dual mesh.
Rectangle_30x10 is a default mesh that is downloaded via Artifacts.jl when a user installs Decapodes. Via CombinatorialSpaces.jl, we can instantiate any .obj file of triangulated faces as a simplicial set.
using CombinatorialSpaces, CombinatorialSpaces.DiscreteExteriorCalculus
using CairoMakie
plot_mesh = loadmesh(Rectangle_30x10())
@@ -285,9 +285,10 @@
# Calculate distances and subdivisions for the dual mesh
subdivide_duals!(plot_mesh_dual, Circumcenter())
-fig, ax, ob = wireframe(plot_mesh)
-ax.aspect = AxisAspect(3.0)
-fig
Finally, we define our operators, generate the simulation function, and compute the simulation. Note that when we define the boundary condition operator, we hardcode the boundary indices and values into the operator itself. We also move the initial concentration to the left, so that we are able to see a constant concentration on the left boundary which will act as a source in the flow. The modified initial condition is shown below:
Finally, we define our operators, generate the simulation function, and compute the simulation. Note that when we define the boundary condition operator, we hardcode the boundary indices and values into the operator itself. We also move the initial concentration to the left, so that we are able to see a constant concentration on the left boundary which will act as a source in the flow. The modified initial condition is shown below:
using LinearAlgebra
using ComponentArrays
using MLStyle
using CombinatorialSpaces.DiscreteExteriorCalculus: ∧
@@ -313,9 +314,10 @@
c_dist = MvNormal([1, 5], [1.5, 1.5])
c = [pdf(c_dist, [p[1], p[2]]) for p in plot_mesh_dual[:point]]
-fig, ax, ob = mesh(plot_mesh; color=c[1:nv(plot_mesh)])
-ax.aspect = AxisAspect(3.0)
-fig
And the simulation result is then computed and visualized below.