view src/Grids/Grids.jl @ 2015:5c2448d6a201 feature/grids/geometry_functions tip

Structure tests a bit more
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 09 May 2025 15:57:38 +0200
parents ea04a542a526
children 524a52f190d7
line wrap: on
line source

module Grids

using Diffinitive.LazyTensors
using StaticArrays
using LinearAlgebra

export ParameterSpace
export HyperBox
export Simplex
export Interval
export Rectangle
export Box
export Triangle
export Tetrahedron

export limits
export unitinterval
export unitsquare
export unitcube
export unithyperbox

export verticies
export unittriangle
export unittetrahedron
export unitsimplex

export Chart

export Atlas
export charts
export connections
export CartesianAtlas
export UnstructuredAtlas

export parameterspace

# Grid
export Grid
export coordinate_size
export component_type
export grid_id
export boundary_id
export boundary_indices
export boundary_identifiers
export boundary_grid
export min_spacing
export coarsen
export refine
export eval_on
export componentview
export ArrayComponentView
export normal

export BoundaryIdentifier
export TensorGridBoundary
export CartesianBoundary
export LowerBoundary
export UpperBoundary

export TensorGrid
export ZeroDimGrid

export EquidistantGrid
export inverse_spacing
export spacing
export equidistant_grid

export MultiBlockBoundary

# MappedGrid
export MappedGrid
export jacobian
export logical_grid
export mapped_grid
export metric_tensor

include("parameter_space.jl")
include("grid.jl")
include("multiblockgrids.jl")
include("manifolds.jl")
include("tensor_grid.jl")
include("equidistant_grid.jl")
include("zero_dim_grid.jl")
include("mapped_grid.jl")
include("geometry.jl")

function __init__()
    if !isdefined(Base.Experimental, :register_error_hint)
        return
    end

    Base.Experimental.register_error_hint(MethodError) do io, exc, argtypes, kwargs
        if exc.f == Grids.jacobian
            print(io, "\nThis possibly means that a function used to define a coordinate mapping is missing a method for `Grids.jacobian`.\n")
            print(io, "Provide one by for exmple implementing `Grids.jacobian(::$(typeof(exc.args[1])), x) = ...` or `Grids.jacobian(f, x) = ForwardDiff.jacobian(f,x)`")
        end
    end
end

end # module