Gridap.Geometry
Gridap.Geometry
— ModuleExported names are
BoundaryTriangulation
CartesianDescriptor
CartesianDiscreteModel
CartesianGrid
CellField
CellQuadrature
DiscreteModel
DiscreteModelFromFile
DiscreteModelPortion
FaceLabeling
GenericBoundaryTriangulation
GenericCellField
Grid
GridPortion
GridTopology
InterfaceTriangulation
OrientationStyle
QPointCellField
RegularityStyle
RestrictedDiscreteModel
RestrictedTriangulation
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_entity
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_face_to_lface
get_grid
get_grid_topology
get_isboundary_face
get_left_boundary
get_node_face_owner
get_normal_vector
get_physical_coordinate
get_polytopes
get_reffaces_offsets
get_reffes
get_right_boundary
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
— MethodRestrictedTriangulation
Gridap.Geometry.RestrictedTriangulation
— TypeBoundaryTriangulations
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_lface
— 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.InterfaceTriangulation
— MethodGridap.Geometry.get_volume_triangulation
— Methodget_volume_triangulation(trian::SkeletonTriangulation)
Gridap.Geometry.get_normal_vector
— Methodget_normal_vector(trian::SkeletonTriangulation)
Gridap.Geometry.get_left_boundary
— MethodGridap.Geometry.get_right_boundary
— MethodSkeletonPairs
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(args...)
Same args needed to construct a CartesianDescriptor
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_cell_entity
— MethodGridap.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)
DiscreteModelPortion
Gridap.Geometry.DiscreteModelPortion
— TypeRestrictedDiscreteModel
Gridap.Geometry.RestrictedDiscreteModel
— TypeCellFields
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.QPointCellField
— MethodGridap.Geometry.CellField
— MethodGridap.Geometry.get_cell_map
— Methodget_cell_map(a::SkeletonCellField)
Gridap.Geometry.jump
— Methodjump(sf::SkeletonCellField)
Gridap.Geometry.mean
— Methodmean(sf::SkeletonCellField)