Gridap.Geometry
Gridap.Geometry
— ModuleExported names are
BoundaryTriangulation
CartesianDescriptor
CartesianDiscreteModel
CartesianGrid
CellField
CellQuadrature
DiscreteModel
DiscreteModelFromFile
FaceLabeling
GenericBoundaryTriangulation
GenericCellField
Grid
GridPortion
GridTopology
OrientationStyle
RegularityStyle
SkeletonCellField
SkeletonPair
SkeletonTriangulation
Triangulation
TriangulationPortion
UnstructuredDiscreteModel
UnstructuredGrid
UnstructuredGridTopology
add_tag!
add_tag_from_tags!
compute_cell_faces
compute_cell_permutations
compute_face_nodes
compute_face_own_nodes
compute_face_vertices
compute_isboundary_face
compute_linear_grid
compute_node_face_owner
compute_reference_grid
compute_reffaces
compute_vertex_node
convert_to_cell_field
get_cartesian_descriptor
get_cell_coordinates
get_cell_faces
get_cell_id
get_cell_map
get_cell_nodes
get_cell_permutations
get_cell_reffes
get_cell_shapefuns
get_cell_type
get_cell_vertices
get_face_entity
get_face_labeling
get_face_mask
get_face_tag
get_face_tag_index
get_face_to_cell
get_face_to_cell_map
get_grid
get_grid_topology
get_isboundary_face
get_node_face_owner
get_normal_vector
get_physical_coordinate
get_polytopes
get_reffaces_offsets
get_reffes
get_tag_entities
get_tag_from_name
get_tag_name
get_tags_from_names
get_triangulation
get_volume_triangulation
is_oriented
is_regular
jump
mean
num_cells
num_entities
num_tags
restrict
similar_object
test_boundary_triangulation
test_cell_field
test_discrete_model
test_grid
test_grid_topology
test_triangulation
Triangulations
Interface
Gridap.Geometry.Triangulation
— Typeabstract type Triangulation{Dc,Dp}
Abstract type representing an arbitrary tiling, tessellation, or triangulation of a domain of parametric dimension Dc
and physical dimension Dp
.
We define a triangulation from two basic ingredients:
- the cell-wise nodal coordinates of the cells in the triangulation, plus
- an interpolation of this cell-wise coordinates into the cells interior.
Note that this type represents general triangulations (not necessarily conforming), which is the minimum geometrical information needed to perform cell-wise numerical integration.
The Triangulation
interface is defined by overloading these methods:
get_cell_coordinates(trian::Triangulation)
get_reffes(trian::Triangulation)
get_cell_type(trian::Triangulation)
Optional interface:
For triangulations living in a space of co-dimension 1, the following method can be defined:
- [
get_normal_vector(trian::Triangulation)
]
In some cases, concrete implementations want to override the default implementation of the following methods:
- [
restrict(f::AbstractArray, trian::Triangulation)
] - [
get_cell_id(f::AbstractArray, trian::Triangulation)
]
The (mandatory) Triangulation
interface can be tested with
Gridap.Geometry.get_cell_coordinates
— Methodget_cell_coordinates(trian::Triangulation) -> AbstractArray{Vector{<:Point{Dp}}}
Gridap.Geometry.get_reffes
— Methodget_reffes(trian::Triangulation) -> Vector{LagrangianRefFE}
Gridap.Geometry.get_cell_type
— Methodget_cell_type(trian::Triangulation) -> AbstractVector{<:Integer}
Gridap.Geometry.get_normal_vector
— Methodget_normal_vector(trian::Triangulation)
Gridap.Geometry.restrict
— Methodrestrict(f::AbstractArray, trian::Triangulation)
Gridap.Arrays.reindex
— Methodreindex(a::AbstractArray, trian::Triangulation)
Gridap.Geometry.test_triangulation
— Functiontest_triangulation(trian::Triangulation)
Gridap.Geometry.num_cells
— Methodnum_cells(trian::Triangulation) -> Int
Gridap.ReferenceFEs.num_cell_dims
— Methodnum_cell_dims(::GridTopology) -> Int
num_cell_dims(::Type{<:GridTopology}) -> Int
num_cell_dims(::Triangulation) -> Int
num_cell_dims(::Type{<:Triangulation}) -> Int
Gridap.Integration.num_point_dims
— Methodnum_point_dims(::Quadrature{D}) where D
num_point_dims(::Type{<:Quadrature{D}}) where D
num_point_dims(::GridTopology) -> Int
num_point_dims(::Type{<:GridTopology}) -> Int
num_point_dims(::Triangulation) -> Int
num_point_dims(::Type{<:Triangulation}) -> Int
Gridap.Integration.num_dims
— Methodnum_dims(::Quadrature{D}) where D where D
num_dims(::Type{<:Quadrature{D}}) where D
num_dims(::GridTopology) -> Int
num_dims(::Type{<:GridTopology}) -> Int
Equivalent to num_cell_dims
.
num_dims(::Triangulation) -> Int
num_dims(::Type{<:Triangulation}) -> Int
Equivalent to num_cell_dims
.
Gridap.ReferenceFEs.is_affine
— Methodis_affine(trian::Triangulation) -> Bool
Gridap.ReferenceFEs.is_first_order
— Methodis_first_order(trian::Triangulation) -> Bool
Gridap.Geometry.get_cell_reffes
— Methodget_cell_reffes(trian::Triangulation) -> Vector{<:NodalReferenceFEs}
It is not desirable to iterate over the resulting array for large number of cells if the underlying reference FEs are of different Julia type.
Gridap.Geometry.get_cell_shapefuns
— Methodget_cell_shapefuns(trian::Triangulation) -> Vector{<:Field}
Gridap.Geometry.get_cell_map
— Methodget_cell_map(trian::Triangulation) -> Vector{<:Field}
Gridap.Geometry.get_physical_coordinate
— Methodget_physical_coordinate(trian::Triangulation)
In contrast to getcellmap, the returned object:
- is a
CellField
- its gradient is the identity tensor
Integrating on a triangulation
Gridap.Geometry.CellQuadrature
— Typestruct CellQuadrature <: GridapType
array
end
Gridap.Geometry.CellQuadrature
— MethodCellQuadrature(array::AbstractArray{<:Quadrature})
Gridap.Geometry.CellQuadrature
— MethodCellQuadrature(trian::Triangulation, degree::Integer)
Gridap.Geometry.CellQuadrature
— MethodCellQuadrature(polytopes::Vector{<:Polytope}, cell_types::AbstractVector)
Gridap.Integration.get_coordinates
— Methodget_coordinates(q::CellQuadrature)
Gridap.Integration.get_weights
— Methodget_weights(q::CellQuadrature)
Gridap.Arrays.get_array
— Methodget_array(quad::CellQuadrature)
Gridap.Fields.integrate
— Methodintegrate(cell_field,trian::Triangulation,quad::CellQuadrature)
The cell_field
is aligned with the cells in trian
TriangulationPortion
Gridap.Geometry.TriangulationPortion
— TypeGridap.Geometry.TriangulationPortion
— MethodBoundaryTriangulations
Interface
Gridap.Geometry.BoundaryTriangulation
— Typeabstract type BoundaryTriangulation{Dc,Dp} <: Triangulation{Dc,Dp}
Gridap.Geometry.BoundaryTriangulation
— MethodBoundaryTriangulation(model::DiscreteModel,face_to_mask::Vector{Bool})
BoundaryTriangulation(model::DiscreteModel)
Gridap.Geometry.BoundaryTriangulation
— MethodBoundaryTriangulation(model::DiscreteModel,tags::Vector{Int})
BoundaryTriangulation(model::DiscreteModel,tags::Vector{String})
BoundaryTriangulation(model::DiscreteModel,tag::Int)
BoundaryTriangulation(model::DiscreteModel,tag::String)
Gridap.Geometry.get_volume_triangulation
— Methodget_volume_triangulation(trian::BoundaryTriangulation)
Gridap.Geometry.get_face_to_cell
— MethodGridap.Geometry.get_face_to_cell_map
— MethodGridap.Geometry.get_normal_vector
— MethodGridap.Geometry.test_boundary_triangulation
— Functiontest_boundary_triangulation(trian::BoundaryTriangulation)
GenericBoundaryTriangulations
Gridap.Geometry.GenericBoundaryTriangulation
— Typestruct GenericBoundaryTriangulation{Dc,Dp,Gf,Gc,O} <: BoundaryTriangulation{Dc,Dp}
face_trian::Gf
cell_trian::Gc
# + private fields
end
Gridap.Geometry.GenericBoundaryTriangulation
— MethodGenericBoundaryTriangulation(model::DiscreteModel,face_to_mask::Vector{Bool})
SkeletonTriangulations
Gridap.Geometry.SkeletonTriangulation
— Typestruct SkeletonTriangulation{Dc,Dp,B} <: Triangulation{Dc,Dp}
left::B
right::B
end
The inner constructor enforces B<:BoundaryTriangulation
Gridap.Geometry.SkeletonTriangulation
— MethodSkeletonTriangulation(model::DiscreteModel,face_to_mask::Vector{Bool})
SkeletonTriangulation(model::DiscreteModel)
Gridap.Geometry.get_volume_triangulation
— Methodget_volume_triangulation(trian::SkeletonTriangulation)
Gridap.Geometry.get_normal_vector
— Methodget_normal_vector(trian::SkeletonTriangulation)
SkeletonPairs
Gridap.Geometry.SkeletonPair
— Typestruct SkeletonPair{L,R} <: GridapType
left::L
right::R
end
Grids
Interface
Gridap.Geometry.Grid
— Typeabstract type Grid{Dc,Dp} <: Triangulation{Dc,Dp}
Abstract type that represents conforming triangulations, whose cell-wise nodal coordinates are defined with a vector of nodal coordinates, plus a cell-wise vector of node ids.
The interface of Grid
is defined by overloading the methods in Triangulation
plus the following ones:
From these two methods a default implementation of get_cell_coordinates(trian::Triangulation)
is available.
The Grid
interface has the following traits
The interface of Grid
is tested with
Gridap.Geometry.OrientationStyle
— MethodOrientationStyle(::Type{<:Grid}) -> Val{Bool}
OrientationStyle(::Grid) -> Val{Bool}
Val{true}()
if has oriented faces, Val{false}()
otherwise (default).
Gridap.Geometry.RegularityStyle
— MethodRegularityStyle(::Type{<:Grid}) -> Val{Bool}
RegularityStyle(::Grid) -> Val{Bool}
Val{true}()
if no hanging-nodes (refault), Val{false}()
otherwise.
Gridap.ReferenceFEs.get_node_coordinates
— Methodget_node_coordinates(trian::Grid) -> AbstractArray{<:Point{Dp}}
Gridap.Geometry.get_cell_nodes
— Methodget_cell_nodes(trian::Grid)
Gridap.Geometry.test_grid
— Functiontest_grid(trian::Grid)
Gridap.ReferenceFEs.num_nodes
— Methodnum_nodes(trian::Grid) -> Int
Gridap.Geometry.is_oriented
— Methodis_oriented(::Type{<:Grid}) -> Bool
is_oriented(a::Grid) -> Bool
Gridap.Geometry.is_regular
— Methodis_regular(::Type{<:Grid}) -> Bool
is_regular(a::Grid) -> Bool
Gridap.Geometry.Grid
— MethodGrid(reffe::LagrangianRefFE)
Gridap.Geometry.compute_linear_grid
— Methodcompute_linear_grid(reffe::LagrangianRefFE)
Gridap.Geometry.compute_reference_grid
— Methodcompute_reference_grid(p::LagrangianRefFE, nelems::Integer)
Gridap.Geometry.Grid
— MethodGrid(::Type{ReferenceFE{d}},p::Polytope) where d
Gridap.Geometry.GridTopology
— MethodGridTopology(grid::Grid)
GridTopology(grid::Grid, cell_to_vertices::Table, vertex_to_node::Vector)
Gridap.ReferenceFEs.simplexify
— Methodsimplexify(grid::Grid)
UnstructuredGrids
Gridap.Geometry.UnstructuredGrid
— Typestruct UnstructuredGrid{Dc,Dp,Tp,Ti,O} <: Grid{Dc,Dp}
node_coordinates::Vector{Point{Dp,Tp}}
cell_nodes::Table{Ti,Int32}
reffes::Vector{<:NodalReferenceFE{Dc}}
cell_types::Vector{Int8}
end
Gridap.Geometry.UnstructuredGrid
— Methodfunction UnstructuredGrid(
node_coordinates::Vector{Point{Dp,Tp}},
cell_nodes::Table{Ti},
reffes::Vector{<:NodalReferenceFE{Dc}},
cell_types::Vector,
::Val{B}=Val{false}()) where {Dc,Dp,Tp,Ti,B}
end
Low-level inner constructor.
Gridap.Geometry.UnstructuredGrid
— MethodUnstructuredGrid(trian::Grid)
Gridap.Geometry.UnstructuredGrid
— MethodUnstructuredGrid(reffe::LagrangianRefFE)
Build a grid with a single cell that is the given reference FE itself
Gridap.Geometry.UnstructuredGrid
— MethodUnstructuredGrid(::Type{ReferenceFE{d}},p::Polytope) where d
Gridap.Geometry.UnstructuredGrid
— MethodUnstructuredGrid(x::AbstractArray{<:Point})
Gridap.Geometry.UnstructuredGridTopology
— MethodUnstructuredGridTopology(grid::UnstructuredGrid)
UnstructuredGridTopology(
grid::UnstructuredGrid,
cell_to_vertices::Table,
vertex_to_node::AbstractVector)
CartesianGrids
Gridap.Geometry.CartesianGrid
— Typestruct CartesianGrid{D,T,F} <: Grid{D,D}
# private fields
end
Gridap.Geometry.CartesianGrid
— MethodCartesianGrid(desc::CartesianDescriptor)
Gridap.Geometry.CartesianGrid
— MethodCartesianGrid(domain,partition,map::Function=identity)
Gridap.Geometry.get_cartesian_descriptor
— Methodget_cartesian_descriptor(grid::CartesianGrid)
Get the descriptor of the Cartesian grid
Gridap.Geometry.CartesianDescriptor
— Typestruct CartesianDescriptor{D,T,F<:Function}
origin::Point{D,T}
sizes::Point{D,T}
partition::Point{D,Int}
map::F
end
Struct that stores the data defining a Cartesian grid.
Gridap.Geometry.CartesianDescriptor
— MethodCartesianDescriptor(origin,sizes,partition,map::Function=identity)
Gridap.Geometry.CartesianDescriptor
— TypeCartesianDescriptor(domain,partition,map::Function=identity)
GridPortion
Gridap.Geometry.GridPortion
— Typestruct GridPortion{Dc,Dp,G} <: Grid{Dc,Dp}
oldgrid::G
cell_to_oldcell::Vector{Int}
node_to_oldnode::Vector{Int}
end
Gridap.Geometry.GridPortion
— MethodGridPortion(oldgrid::Grid{Dc,Dp},cell_to_oldcell::Vector{Int}) where {Dc,Dp}
FaceLabeling
Gridap.Geometry.FaceLabeling
— Typestruct FaceLabeling <: GridapType
d_to_dface_to_entity::Vector{Vector{Int32}}
tag_to_entities::Vector{Vector{Int32}}
tag_to_name::Vector{String}
end
Gridap.Geometry.FaceLabeling
— MethodFaceLabeling(d_to_num_dfaces::Vector{Int})
FaceLabeling(topo::GridTopology)
Gridap.Integration.num_dims
— Methodnum_dims(lab::FaceLabeling)
Gridap.ReferenceFEs.num_cell_dims
— Methodnum_cell_dims(lab::FaceLabeling)
Gridap.Geometry.num_tags
— Methodnum_tags(lab::FaceLabeling)
Gridap.Geometry.num_entities
— Methodnum_entities(lab::FaceLabeling)
Gridap.ReferenceFEs.num_faces
— Methodnum_faces(lab::FaceLabeling,d::Integer)
Gridap.ReferenceFEs.num_faces
— Methodnum_faces(lab::FaceLabeling)
Gridap.ReferenceFEs.num_vertices
— Methodnum_vertices(lab::FaceLabeling)
Gridap.ReferenceFEs.num_edges
— Methodnum_edges(lab::FaceLabeling)
Gridap.ReferenceFEs.num_facets
— Methodnum_facets(lab::FaceLabeling)
Gridap.Geometry.num_cells
— Methodnum_cells(lab::FaceLabeling)
Gridap.Geometry.get_face_entity
— Methodget_face_entity(lab::FaceLabeling,d::Integer)
Gridap.Geometry.get_face_entity
— Methodget_face_entity(lab::FaceLabeling)
Gridap.Geometry.get_tag_entities
— Methodget_tag_entities(lab::FaceLabeling,tag::Integer)
get_tag_entities(lab::FaceLabeling,tag::String)
Gridap.Geometry.get_tag_entities
— Methodget_tag_entities(lab::FaceLabeling)
Gridap.Geometry.get_tag_name
— Methodget_tag_name(lab::FaceLabeling,tag::Integer)
Gridap.Geometry.get_tag_name
— Methodget_tag_name(lab::FaceLabeling)
Gridap.Geometry.get_tag_from_name
— Methodget_tag_from_name(lab::FaceLabeling,name::String)
Gridap.Geometry.get_tag_from_name
— Methodget_tag_from_name(lab::FaceLabeling)
Gridap.Geometry.get_tags_from_names
— Methodget_tags_from_names(lab::FaceLabeling,names::Vector{String})
Gridap.Geometry.get_face_mask
— Methodget_face_mask(labeling::FaceLabeling,tags::Vector{Int},d::Integer)
get_face_mask(labeling::FaceLabeling,tags::Vector{String},d::Integer)
get_face_mask(labeling::FaceLabeling,tag::Int,d::Integer)
get_face_mask(labeling::FaceLabeling,tag::String,d::Integer)
Gridap.Geometry.add_tag!
— Methodadd_tag!(lab::FaceLabeling,name::String,entities::Vector{<:Integer})
Gridap.Geometry.add_tag_from_tags!
— Methodadd_tag_from_tags!(lab::FaceLabeling, name::String, tags::Vector{Int})
add_tag_from_tags!(lab::FaceLabeling, name::String, tags::Vector{String})
add_tag_from_tags!(lab::FaceLabeling, name::String, tag::Int)
add_tag_from_tags!(lab::FaceLabeling, name::String, tag::String)
Gridap.Geometry.get_face_tag
— Methodget_face_tag(labeling::FaceLabeling,tags::Vector{Int},d::Integer)
get_face_tag(labeling::FaceLabeling,tags::Vector{String},d::Integer)
get_face_tag(labeling::FaceLabeling,tag::Int,d::Integer)
get_face_tag(labeling::FaceLabeling,tag::String,d::Integer)
get_face_tag(labeling::FaceLabeling,d::Integer)
The first of the given tags appearing in the face is taken. If there is no tag on a face, this face will have a value equal to UNSET
. If not tag or tags are provided, all the tags in the model are considered
Gridap.Geometry.get_face_tag_index
— Methodget_face_tag_index(labeling::FaceLabeling,tags::Vector{Int},d::Integer)
get_face_tag_index(labeling::FaceLabeling,tags::Vector{String},d::Integer)
get_face_tag_index(labeling::FaceLabeling,tag::Int,d::Integer)
get_face_tag_index(labeling::FaceLabeling,tag::String,d::Integer)
Like get_face_tag
by provides the index into the array tags
instead of the tag stored in tags
.
GridTopology
Interface
Gridap.Geometry.GridTopology
— Typeabstract type GridTopology{Dc,Dp}
Abstract type representing the topological information associated with a grid.
The GridTopology
interface is defined by overloading the methods:
get_faces(g::GridTopology,dimfrom::Integer,dimto::Integer)
get_polytopes(g::GridTopology)
get_cell_type(g::GridTopology)
get_vertex_coordinates(g::GridTopology)
The GridTopology
interface has the following traits
and tested with this function:
Gridap.Geometry.OrientationStyle
— MethodOrientationStyle(::Type{<:GridTopology}) -> Val{Bool}
OrientationStyle(::GridTopology) -> Val{Bool}
Val{true}()
if has oriented faces, Val{false}()
otherwise (default).
Gridap.Geometry.RegularityStyle
— MethodRegularityStyle(::Type{<:GridTopology}) -> Val{Bool}
RegularityStyle(::GridTopology) -> Val{Bool}
Val{true}()
if no hanging-faces (refault), Val{false}()
otherwise.
Gridap.ReferenceFEs.get_faces
— Methodget_faces(g::GridTopology,dimfrom::Integer,dimto::Integer)
Gridap.Geometry.get_polytopes
— Methodget_polytopes(g::GridTopology)
Gridap.Geometry.get_cell_type
— Methodget_cell_type(g::GridTopology)
Gridap.ReferenceFEs.get_vertex_coordinates
— Methodget_vertex_coordinates(g::GridTopology)
Gridap.Geometry.test_grid_topology
— Methodtest_grid_topology(top::GridTopology)
Gridap.ReferenceFEs.num_cell_dims
— Methodnum_cell_dims(::GridTopology) -> Int
num_cell_dims(::Type{<:GridTopology}) -> Int
num_cell_dims(::Triangulation) -> Int
num_cell_dims(::Type{<:Triangulation}) -> Int
Gridap.Integration.num_point_dims
— Methodnum_point_dims(::Quadrature{D}) where D
num_point_dims(::Type{<:Quadrature{D}}) where D
num_point_dims(::GridTopology) -> Int
num_point_dims(::Type{<:GridTopology}) -> Int
num_point_dims(::Triangulation) -> Int
num_point_dims(::Type{<:Triangulation}) -> Int
Gridap.Integration.num_dims
— Methodnum_dims(::Quadrature{D}) where D where D
num_dims(::Type{<:Quadrature{D}}) where D
num_dims(::GridTopology) -> Int
num_dims(::Type{<:GridTopology}) -> Int
Equivalent to num_cell_dims
.
num_dims(::Triangulation) -> Int
num_dims(::Type{<:Triangulation}) -> Int
Equivalent to num_cell_dims
.
Gridap.ReferenceFEs.num_faces
— Methodnum_faces(g::GridTopology,d::Integer)
num_faces(g::GridTopology)
Gridap.Geometry.num_cells
— Methodnum_cells(g::GridTopology)
Gridap.ReferenceFEs.num_facets
— Methodnum_facets(g::GridTopology)
Gridap.ReferenceFEs.num_edges
— Methodnum_edges(g::GridTopology)
Gridap.ReferenceFEs.num_vertices
— Methodnum_vertices(g::GridTopology)
Gridap.ReferenceFEs.get_dimranges
— Methodget_dimranges(g::GridTopology)
Gridap.ReferenceFEs.get_dimrange
— Methodget_dimrange(g::GridTopology,d::Integer)
Gridap.ReferenceFEs.get_offsets
— Methodget_offsets(g::GridTopology)
Gridap.ReferenceFEs.get_offset
— Methodget_offset(g::GridTopology,d::Integer)
Gridap.ReferenceFEs.get_facedims
— Methodget_facedims(g::GridTopology)
Gridap.Geometry.get_cell_faces
— Methodget_cell_faces(g::GridTopology)
Defaults to
compute_cell_faces(g)
Gridap.Geometry.compute_cell_faces
— Methodcompute_cell_faces(g::GridTopology)
Gridap.ReferenceFEs.get_face_vertices
— Methodget_face_vertices(g::GridTopology,d::Integer)
Gridap.ReferenceFEs.get_face_vertices
— Methodget_face_vertices(g::GridTopology)
Defaults to
compute_face_vertices(g)
Gridap.Geometry.compute_face_vertices
— Methodcompute_face_vertices(g::GridTopology)
Gridap.Geometry.get_cell_vertices
— Methodget_cell_vertices(g::GridTopology)
Gridap.ReferenceFEs.is_simplex
— Methodis_simplex(p::GridTopology) -> Bool
Gridap.ReferenceFEs.is_n_cube
— Methodis_n_cube(p::GridTopology) -> Bool
Gridap.Geometry.is_oriented
— Methodis_oriented(::Type{<:GridTopology}) -> Bool
is_oriented(a::GridTopology) -> Bool
Gridap.Geometry.is_regular
— Methodis_regular(::Type{<:GridTopology}) -> Bool
is_regular(a::GridTopology) -> Bool
Gridap.ReferenceFEs.get_reffaces
— Methodget_reffaces(::Type{Polytope{d}}, g::GridTopology) where d
By default, it calls to compute_reffaces
.
Gridap.ReferenceFEs.get_face_type
— Methodget_face_type(g::GridTopology,d::Integer)
By default, it calls to compute_reffaces
.
Gridap.Geometry.compute_reffaces
— Methodcompute_reffaces(::Type{Polytope{d}}, g::GridTopology) where d
Gridap.ReferenceFEs.get_reffaces
— Methodget_reffaces(topo::GridTopology)
Gridap.ReferenceFEs.get_face_type
— Methodget_face_type(topo::GridTopology)
Gridap.Geometry.get_reffaces_offsets
— Methodget_reffaces_offsets(topo::GridTopology)
Gridap.Geometry.compute_reffaces
— Methodcompute_reffaces(g::GridTopology)
Gridap.Geometry.get_isboundary_face
— Methodget_isboundary_face(g::GridTopology)
Gridap.Geometry.get_isboundary_face
— Methodget_isboundary_face(g::GridTopology,d::Integer)
Gridap.Geometry.compute_isboundary_face
— Methodcompute_isboundary_face(g::GridTopology)
Gridap.Geometry.compute_isboundary_face
— Methodcompute_isboundary_face(g::GridTopology,d::Integer)
Gridap.Geometry.get_cell_permutations
— Methodget_cell_permutations(top::GridTopology)
Gridap.Geometry.get_cell_permutations
— Methodget_cell_permutations(top::GridTopology,d::Integer)
Gridap.Geometry.compute_cell_permutations
— Methodcompute_cell_permutations(top::GridTopology)
Gridap.Geometry.compute_cell_permutations
— Methodcompute_cell_permutations(top::GridTopology,d::Integer)
UnstructuredGridTopology
Gridap.Geometry.UnstructuredGridTopology
— Typestruct UnstructuredGridTopology{Dc,Dp,T,O} <: GridTopology{Dc,Dp}
# private fields
end
Gridap.Geometry.UnstructuredGridTopology
— MethodUnstructuredGridTopology(
vertex_coordinates::Vector{<:Point},
cell_vertices::Table,
cell_type::Vector{<:Integer},
polytopes::Vector{<:Polytope},
orientation::Val{O}=Val{false}()) where O
Gridap.Geometry.UnstructuredGridTopology
— MethodUnstructuredGridTopology(
vertex_coordinates::Vector{<:Point},
d_to_dface_vertices::Vector{<:Table},
cell_type::Vector{<:Integer},
polytopes::Vector{<:Polytope},
orientation::Val{O}=Val{false}()) where O
DiscreteModels
Interface
Gridap.Geometry.DiscreteModel
— Typeabstract type DiscreteModel{Dc,Dp} <: GridapType
Abstract type holding information about a physical grid, the underlying grid topology, and a labeling of the grid faces. This is the information that typically provides a mesh generator, and it is what one needs to perform a simulation.
The DiscreteModel
interface is defined by overloading the methods:
get_grid(model::DiscreteModel)
get_grid_topology(model::DiscreteModel)
get_face_labeling(g::DiscreteModel)
The interface is tested with this function:
Gridap.Geometry.get_grid
— Methodget_grid(model::DiscreteModel)
Gridap.Geometry.get_grid_topology
— Methodget_grid_topology(model::DiscreteModel)
Gridap.Geometry.get_face_labeling
— Methodget_face_labeling(g::DiscreteModel)
Gridap.Geometry.test_discrete_model
— Methodtest_discrete_model(model::DiscreteModel)
Gridap.Integration.num_dims
— Methodnum_dims(model::DiscreteModel)
Gridap.ReferenceFEs.num_cell_dims
— Methodnum_cell_dims(model::DiscreteModel)
Gridap.Integration.num_point_dims
— Methodnum_point_dims(model::DiscreteModel)
Gridap.ReferenceFEs.num_faces
— Methodnum_faces(g::DiscreteModel,d::Integer)
num_faces(g::DiscreteModel)
Gridap.Geometry.num_cells
— Methodnum_cells(g::DiscreteModel)
Gridap.ReferenceFEs.num_facets
— Methodnum_facets(g::DiscreteModel)
Gridap.ReferenceFEs.num_edges
— Methodnum_edges(g::DiscreteModel)
Gridap.ReferenceFEs.num_vertices
— Methodnum_vertices(g::DiscreteModel)
Gridap.ReferenceFEs.num_nodes
— Methodnum_nodes(g::DiscreteModel)
Gridap.ReferenceFEs.get_face_nodes
— Methodget_face_nodes(g::DiscreteModel,d::Integer)
Gridap.ReferenceFEs.get_face_nodes
— Methodget_face_nodes(g::DiscreteModel)
Gridap.Geometry.compute_face_nodes
— Methodcompute_face_nodes(model::DiscreteModel,d::Integer)
Gridap.Geometry.compute_face_nodes
— Methodcompute_face_nodes(model::DiscreteModel)
Gridap.ReferenceFEs.get_face_own_nodes
— Methodget_face_own_nodes(g::DiscreteModel,d::Integer)
Gridap.ReferenceFEs.get_face_own_nodes
— Methodget_face_own_nodes(g::DiscreteModel)
Gridap.Geometry.compute_face_own_nodes
— Methodcompute_face_own_nodes(model::DiscreteModel,d::Integer)
Gridap.Geometry.compute_face_own_nodes
— Methodcompute_face_own_nodes(model::DiscreteModel)
Gridap.ReferenceFEs.get_vertex_node
— Methodget_vertex_node(g::DiscreteModel)
Gridap.Geometry.compute_vertex_node
— Methodcompute_vertex_node(g::DiscreteModel)
Gridap.Geometry.get_node_face_owner
— Methodget_node_face_owner(g::DiscreteModel)
Gridap.Geometry.compute_node_face_owner
— Methodcompute_node_face_owner(g::DiscreteModel)
Gridap.ReferenceFEs.get_reffaces
— Methodget_reffaces(::Type{ReferenceFE{d}},model::DiscreteModel) where d
Gridap.ReferenceFEs.get_face_type
— Methodget_face_type(g::DiscreteModel,d::Integer)
Index to the vector get_reffaces(ReferenceFE{d},g)
Gridap.Geometry.compute_reffaces
— Methodcompute_reffaces(::Type{ReferenceFE{d}}, g::DiscreteModel) where d
Gridap.ReferenceFEs.get_reffaces
— Methodget_reffaces(model::DiscreteModel)
Gridap.ReferenceFEs.get_face_type
— Methodget_face_type(model::DiscreteModel)
Gridap.Geometry.get_reffaces_offsets
— Methodget_reffaces_offsets(model::DiscreteModel)
Gridap.Geometry.compute_reffaces
— Methodcompute_reffaces(g::DiscreteModel)
Gridap.Geometry.Grid
— MethodGrid(::Type{ReferenceFE{d}},model::DiscreteModel) where d
Gridap.Geometry.Triangulation
— MethodTriangulation(::Type{ReferenceFE{d}},model::DiscreteModel) where d
Triangulation(model::DiscreteModel)
Gridap.Geometry.get_triangulation
— Methodget_triangulation(model::DiscreteModel)
Gridap.Geometry.get_polytopes
— Methodget_polytopes(model::DiscreteModel)
Gridap.ReferenceFEs.simplexify
— Methodsimplexify(model::DiscreteModel)
DiscreteModelFromFile
Gridap.Geometry.DiscreteModelFromFile
— MethodDiscreteModelFromFile(filename::AbstractString)
UnstructuredDiscreteModels
Gridap.Geometry.UnstructuredDiscreteModel
— Typestruct UnstructuredDiscreteModel{Dc,Dp,Tp,B} <: DiscreteModel{Dc,Dp}
grid::UnstructuredGrid{Dc,Dp,Tp,B}
grid_topology::UnstructuredGridTopology{Dc,Dp,Tp,B}
face_labeling::FaceLabeling
end
Gridap.Geometry.UnstructuredDiscreteModel
— MethodUnstructuredDiscreteModel(grid::Grid)
CartesianDiscreteModels
Gridap.Geometry.CartesianDiscreteModel
— Typestruct CartesianDiscreteModel{D,T,F} <: DiscreteModel{D,D}
# Private Fields
end
Gridap.Geometry.CartesianDiscreteModel
— MethodCartesianDiscreteModel(desc::CartesianDescriptor)
Inner constructor
Gridap.Geometry.CartesianDiscreteModel
— MethodCartesianDiscreteModel(args...)
Same args needed to construct a CartesianDescriptor
Gridap.Geometry.get_cartesian_descriptor
— Methodget_cartesian_descriptor(model::CartesianDiscreteModel)
CellFields
CellFieldLike interface
Gridap.Geometry.CellFieldLike
— Typeabstract type CellFieldLike <: GridapType end
Gridap.Arrays.get_array
— Methodget_array(cf::CellFieldLike)
Gridap.Geometry.get_cell_map
— Methodget_cell_map(cf::CellFieldLike)
Gridap.Geometry.similar_object
— Methodsimilar_object(cf::CellFieldLike,array::AbstractArray)
Gridap.Geometry.similar_object
— Methodsimilar_object(cf1::CellFieldLike,cf2::CellFieldLike,array::AbstractArray)
Gridap.Fields.gradient
— Methodgradient(cf::CellFieldLike)
Gridap.Fields.grad2curl
— Methodgrad2curl(cf::CellFieldLike)
Gridap.Geometry.test_cell_field_like
— Functiontest_cell_field_like(
cf::CellFieldLike,
x::AbstractArray,
b::AbstractArray,
pred=(==);
grad=nothing)
Gridap.Fields.evaluate
— Methodevaluate(cf::CellFieldLike,x)
Base.length
— Methodlength(cf::CellFieldLike)
CellField interface
Gridap.Geometry.CellField
— Typeabstract type CellField <: CellFieldLike end
Gridap.Geometry.test_cell_field
— Functiontest_cell_field(cf::CellField,args...;kwargs...)
Same arguments as test_cell_field_like
Gridap.Geometry.convert_to_cell_field
— Methodconvert_to_cell_field(object::CellField,cell_map)
Gridap.Geometry.restrict
— Methodrestrict(cf::CellField,trian::Triangulation)
Concrete implementations
Gridap.Geometry.GenericCellField
— Typestruct GenericCellField <: CellField
array::AbstractArray
cell_map::AbstractArray
end
Gridap.Geometry.SkeletonCellField
— Typestruct SkeletonCellField <: GridapType
left::CellField
right::CellField
end
Supports the same differential and algebraic operations than CellField
Gridap.Geometry.get_cell_map
— Methodget_cell_map(a::SkeletonCellField)
Gridap.Geometry.jump
— Methodjump(sf::SkeletonCellField)
Gridap.Geometry.mean
— Methodmean(sf::SkeletonCellField)