BinnedPointList
SimplexGridFactory.BinnedPointList
— Typemutable struct BinnedPointList{T}
Binned point list structure allowing for fast check for already existing points.
This provides better performance for indendifying already inserted points than the naive linear search.
OTOH the implementation is still quite naive - it dynamically maintains a cuboid bining region with a fixed number of bins.
Probably tree based adaptive methods (a la octree) will be more efficient, however they will be harder to implement.
In an ideal world, we would maintain a dynamic Delaunay triangulation, which at once could be the starting point of mesh generation which will follow here anyway.
SimplexGridFactory.BinnedPointList
— MethodBinnedPointList(dim; kwargs...)
Create and initialize binned point list
SimplexGridFactory.BinnedPointList
— MethodBinnedPointList(, dim; tol, number_of_directional_bins, binning_region_increase_factor, num_allowed_unbinned_points, max_unbinned_ratio)
BinnedPointList(dim; kwargs...)
Create and initialize binned point list
Base.insert!
— Methodinsert!(bpl, p)
If another point with distance less the tol from p is in pointlist, return its index. Otherwise, insert point into pointlist.
SimplexGridFactory.points
— Methodpoints(bpl)
Return the array of points in the point list.
Mesh generator interface
ExtendableGrids.simplexgrid
— Methodsimplexgrid(::Type{SimplexGridFactory.TriangulateType}, Triangulate, input; kwargs...) -> ExtendableGrid{_A, _B} where {_A, _B}
Create Grid from Triangle input data.
See default_options
for available kwargs
.
SimplexGridFactory.triangulateio
— Methodtriangulateio(Triangulate; points, bfaces, bfaceregions, regionpoints, regionnumbers, regionvolumes) -> Any
Create a TriangulateIO structure from a number of input arrays. The 2D input arrays are transposed if necessary and converted to the proper data types for Triangulate.
This conversion is not performed if the data types are those indicated in the defaults and the leading dimension of 2D arrays corresponds to the space dimension.
SimplexGridFactory.triangulateio
— Methodtriangulateio(this::SimplexGridBuilder) -> Any
Create triangle input from the current state of the builder.
ExtendableGrids.simplexgrid
— Methodsimplexgrid(::Type{SimplexGridFactory.TetGenType}, TetGen, input; kwargs...) -> ExtendableGrid{_A, _B} where {_A, _B}
Create Grid from TetGen data.
See default_options
for available kwargs
.
SimplexGridFactory.tetgenio
— Methodtetgenio(TetGen; points, bfaces, bfaceregions, regionpoints, regionnumbers, regionvolumes) -> Any
Create a RawTetGenIO structure from a number of input arrays. The 2D input arrays are transposed if necessary and converted to the proper data types for TetGen.
This conversion is not performed if the data types are those indicated in the defaults and the leading dimension of 2D arrays corresponds to the space dimension.
SimplexGridFactory.tetgenio
— Methodtetgenio(this::SimplexGridBuilder) -> Any
Create tetgen input from the current state of the builder.
ExtendableGrids.simplexgrid
— Methodfunction simplexgrid(Generator;
points=Array{Cdouble,2}(undef,0,0),
bfaces=Array{Cint,2}(undef,0,0),
bfaceregions=Array{Cint,1}(undef,0),
regionpoints=Array{Cdouble,2}(undef,0,0),
regionnumbers=Array{Cint,1}(undef,0),
regionvolumes=Array{Cdouble,1}(undef,0);
kwargs...
)
Create Grid from a number of input arrays. The 2D input arrays are transposed if necessary and converted to the proper data types for Triangulate or TetGen
This conversion is not performed if the data types are those indicated in the defaults and the leading dimension of 2D arrays corresponds to the space dimension.
See default_options
for available kwargs
.