Configuration

These functions are used at the beginning of your script to set up the configuration.

Main.Finch.generateForMethod
generateFor(lang; filename=project_name, header="", params...)

Specify the generation target. Lang could be one of the included target constants: (MATLAB, DENDRO) or the filename where the target is defined. The keyword argument filename refers to the name to be applied to the generated code. The header text will be placed at the top of each generated code file. If the target requires some extra parameters, those are included in params and available to the target as a Dict{Symbol, Any}.

source
Main.Finch.useLogFunction
useLog(name=project_name; dir=output_dir, level=2)

Turn on logging with the given file name and optional directory. The verbosity level can be 1(basic progress info), 2(More details about each step), or 3(everything).

source
Main.Finch.domainMethod
domain(dims; shape=SQUARE, grid=UNIFORM_GRID)

Set the dimensionality of the domain. The shape(SQUARE, IRREGULAR) and grid type(UNIFORM_GRID, UNSTRUCTURED, TREE) can be set, but may be changed when building or importing the mesh.

source
Missing docstring.

Missing docstring for solverType(method, backend=DEFAULT_SOLVER). Check Documenter's build log for details.

Main.Finch.functionSpaceMethod
functionSpace(;space=LEGENDRE, order=0, orderMin=0, orderMax=0)

Set the polynomial order and type of polynomials for FEM. Some of these are placeholders, so only use order at this point.

source
Main.Finch.nodeTypeMethod
nodeType(type)

For FEM, set the nodal configuration within elements. The default is LOBATTO. GAUSS and UNIFORM are available, but should be used with care.

source
Main.Finch.timeStepperMethod
timeStepper(type; cfl=0)

Set the type of time stepping method and optionally the CFL number. Options include EULER_EXPLICIT, EULER_IMPLICIT, CRANK_NICHOLSON, RK4, LSRK4. There are some other options for specific targets, so see their documentation. If no CFL number is provided, one will be chosen based on the mesh and stepper type.

source
Main.Finch.timeIntervalMethod
timeInterval(T)

Set the ending time for time stepping. This is overridden if time steps are manually specified.

source
Main.Finch.linAlgOptionsMethod
linAlgOptions(kwargs...)

Set options for solving the linear system. Matrix-free must use an iterative method. Iterative methods include GMRES, CG, or BiCGStable provided by IterativeSolvers.jl Available preconditioners are AMG and ILU provided by AlgebraicMultigrid.jl and IncompleteLU.jl. Defaults maxiter=0, abstol=0, and gmresRestart=0 will use the corresponding defaults from IterativeSolvers.jl

Keywords

  • matrixFree=false
  • iterative=false
  • method="GMRES" or "CG" or "BCGS"
  • pc="ILU" or "AMG" or "NONE"
  • maxiter::Int=0 0 will result in size(A, 2)
  • abstol=0
  • reltol=1e-8
  • gmresRestart=0 0 will result in min(20, size(A, 2))
  • verbose::Bool=false Print convergence info for each iteration.
source