docs: add TUG documentation and make.jl script
[skip ci]
This commit is contained in:
parent
bd01c0ee74
commit
da65b6fa14
13
julia/TUG/docs/make.jl
Normal file
13
julia/TUG/docs/make.jl
Normal file
@ -0,0 +1,13 @@
|
||||
using Pkg
|
||||
using Documenter
|
||||
|
||||
pkg_path = abspath(joinpath(@__DIR__, ".."))
|
||||
Pkg.develop(path=pkg_path)
|
||||
using TUG
|
||||
|
||||
makedocs(
|
||||
sitename="TUG Documentation",
|
||||
modules=[TUG],
|
||||
format=Documenter.HTML(),
|
||||
remotes=nothing
|
||||
)
|
||||
97
julia/TUG/docs/src/index.md
Normal file
97
julia/TUG/docs/src/index.md
Normal file
@ -0,0 +1,97 @@
|
||||
# TUG Documentation
|
||||
|
||||
TUG is a Julia package that provides a framework for solving transport problems, notably diffusion, on uniform grids. It implements different numerical approaches, including implicit BTCS (Backward Time, Central Space) Euler and parallel 2D ADI (Alternating Direction Implicit).
|
||||
|
||||
```@contents
|
||||
```
|
||||
|
||||
## Introduction
|
||||
|
||||
TUG, originally developed as a C++ library, is now available as a Julia package. It aims to offer a comprehensive toolkit for solving transport problems, such as diffusion and advection, on uniform grids.
|
||||
|
||||
## Installation
|
||||
|
||||
If TUG is locally cloned on your machine, you can install it by pointing to the local path. Open Julia REPL and follow these steps:
|
||||
|
||||
```julia
|
||||
using Pkg
|
||||
Pkg.develop(path="path/to/tug/julia/TUG") # Replace with the actual path to the TUG directory
|
||||
using TUG
|
||||
```
|
||||
|
||||
## Getting Started
|
||||
|
||||
Below are some basic examples of using TUG. For more detailed information, see the API section. For more advanced examples, see the test files in the `test` directory.
|
||||
|
||||
### Creating a Simulation
|
||||
|
||||
To create a simulation with TUG, you first need to set up a grid and boundary conditions. Here is an example of setting up a basic simulation:
|
||||
|
||||
```julia
|
||||
using TUG
|
||||
|
||||
# Create a 1D grid
|
||||
grid = TUG.Grid{Float64}(5, ones(1, 5))
|
||||
|
||||
# Define boundary conditions
|
||||
boundary = TUG.Boundary{Float64}(grid)
|
||||
|
||||
# Initialize a simulation with default parameters
|
||||
simulation = TUG.Simulation{Float64}(grid, boundary)
|
||||
```
|
||||
|
||||
### Running a Simulation
|
||||
|
||||
After setting up the simulation, you can run it and analyze the results:
|
||||
|
||||
```julia
|
||||
# Set initial concentrations
|
||||
TUG.setConcentrations!(grid, [1.0, 1.0, 20.0, 1.0, 1.0])
|
||||
|
||||
# Run the simulation
|
||||
TUG.run(simulation)
|
||||
|
||||
# Retrieve the concentrations after simulation
|
||||
concentrations = TUG.getConcentrations(grid)
|
||||
```
|
||||
|
||||
### Advanced Setup
|
||||
|
||||
You can also customize your simulation with different parameters:
|
||||
|
||||
```julia
|
||||
# Create a simulation with custom parameters
|
||||
simulation = TUG.Simulation{Float64}(
|
||||
grid,
|
||||
boundary;
|
||||
approach = TUG.FTCS,
|
||||
iterations = 2,
|
||||
timestep = 0.2,
|
||||
consoleOutput = TUG.CONSOLE_OUTPUT_ON,
|
||||
csvOutput = TUG.CSV_OUTPUT_ON
|
||||
)
|
||||
```
|
||||
|
||||
### Dynamic Simulation
|
||||
|
||||
For dynamic simulations where the concentration is manipulated externally during runtime:
|
||||
|
||||
```julia
|
||||
# Initialize a dynamic simulation
|
||||
dynamicSimulation = TUG.DynamicSimulation{Float64}(grid, boundary; timestep = 0.1)
|
||||
|
||||
# Create and update the grid over iterations
|
||||
TUG.createGrid(dynamicSimulation)
|
||||
for _ = 1:20
|
||||
TUG.next(dynamicSimulation)
|
||||
# Update the concentration
|
||||
end
|
||||
```
|
||||
|
||||
## API Reference
|
||||
|
||||
For a detailed reference of all functionalities, see the API section:
|
||||
|
||||
```@autodocs
|
||||
Modules = [TUG]
|
||||
```
|
||||
Loading…
x
Reference in New Issue
Block a user