diff --git a/docs/src/concepts/architectures.md b/docs/src/concepts/architectures.md index d5ec3e05..0dc90b29 100644 --- a/docs/src/concepts/architectures.md +++ b/docs/src/concepts/architectures.md @@ -31,6 +31,10 @@ For advanced users, we provide a function `activate!(arch; priority)` for specif Our distributed architecture builds upon the abstraction of having GPU clusters that build on the same GPU architecture. Note that in general, GPU clusters may be equipped with hardware from different vendors, incorporating different types of GPUs to exploit their unique capabilities for specific tasks. +!!! warning "GPU-Aware MPI Required for Distributed Module on GPU backend" + The `Distributed` module currently only supports [GPU-aware MPI](https://juliaparallel.org/MPI.jl/stable/usage/#CUDA-aware-MPI-support) when a GPU backend is selected for multi-GPU computations. For the `Distributed` module to function properly, any GPU-aware MPI library installation shall be used. Otherwise, a segmentation fault will occur. + + To make the `Architecture` object aware of MPI topology, user can pass an MPI communicator object and dimensions of the Cartesian topology to the `Arch` constructor: ```julia diff --git a/docs/src/concepts/bc.md b/docs/src/concepts/bc.md index c129da36..0e4417b6 100644 --- a/docs/src/concepts/bc.md +++ b/docs/src/concepts/bc.md @@ -57,7 +57,7 @@ The following figure showcases a 2D square domain $\Omega$ with different bounda - The left and right boundaries (green) are Neumann boundary conditions where $\frac{\partial u}{\partial y} = 0$. ```@raw html - + ``` To launch a kernel that satisfies these boundary conditions in Chmy.jl, you can use the following code: diff --git a/docs/src/concepts/fields.md b/docs/src/concepts/fields.md index a3c27d85..fb96b9d0 100644 --- a/docs/src/concepts/fields.md +++ b/docs/src/concepts/fields.md @@ -3,7 +3,7 @@ With a given grid that allows us to define each point uniquely in a high-dimensional space, we abstract the data values to be defined on the grid under the concept `AbstractField`. Following is the type tree of the abstract field and its derived data types. ```@raw html - + ``` ## Defining a multi-dimensional `Field` @@ -50,11 +50,11 @@ set!(C, grid, (x, y) -> exp(-x^2 - y^2)) ``` ```@raw html - + ``` ```@raw html - + ``` A slightly more complex usage involves passing extra parameters to be used for initial conditions setup. diff --git a/docs/src/concepts/grids.md b/docs/src/concepts/grids.md index 37d1f617..8a085147 100644 --- a/docs/src/concepts/grids.md +++ b/docs/src/concepts/grids.md @@ -53,11 +53,11 @@ grid = UniformGrid(arch; - [grids_3d.jl](https://github.com/PTsolvers/Chmy.jl/blob/main/examples/grids_3d.jl): Visualization of a 3D `StructuredGrid` ```@raw html - + ``` ```@raw html - + ``` ## Location on a Grid Cell @@ -67,13 +67,13 @@ In order to allow full control over the distribution of different variables on t We illustrate how to specify the location within a grid cell on a fully staggered uniform grid. The following 2D example also has ghost nodes illustrated that are located immediately outside the domain boundary. ```@raw html - + ``` In the following example, we zoom into a specific cell on a **fully-staggered grid**. By specifying for both x- and y-dimensions whether the node locates at the `Center` (C) or `Vertex` (V) along the respective axis, we can arrive in 4 categories of nodes on a 2D quadrilateral cell, which we refer to as "basic", "pressure", "Vx" and "Vy" nodes, following common practices. ```@raw html - + ``` If all variables are defined on basic nodes, specified by `(V,V)` locations, we have the simplest non-staggered **collocated grid**. diff --git a/docs/src/getting_started.md b/docs/src/getting_started.md index 8ec5874d..0d43c191 100644 --- a/docs/src/getting_started.md +++ b/docs/src/getting_started.md @@ -120,7 +120,7 @@ bc!(arch, grid, C => Neumann(); exchange=C) ```@raw html
- +
``` @@ -142,6 +142,6 @@ After running the simulation, you should see something like this, here the final ```@raw html
- +
```