Gridap.Geometry
Gridap.Geometry — ModuleExported names are
BoundaryTriangulationCartesianDescriptorCartesianDiscreteModelCartesianGridCellFieldCellQuadratureDiscreteModelDiscreteModelFromFileFaceLabelingGenericBoundaryTriangulationGenericCellFieldGridGridPortionGridTopologyOrientationStyleRegularityStyleSkeletonCellFieldSkeletonPairSkeletonTriangulationTriangulationTriangulationPortionUnstructuredDiscreteModelUnstructuredGridUnstructuredGridTopologyadd_tag!add_tag_from_tags!compute_cell_facescompute_cell_permutationscompute_face_nodescompute_face_own_nodescompute_face_verticescompute_isboundary_facecompute_linear_gridcompute_node_face_ownercompute_reference_gridcompute_reffacescompute_vertex_nodeconvert_to_cell_fieldget_cartesian_descriptorget_cell_coordinatesget_cell_facesget_cell_idget_cell_mapget_cell_nodesget_cell_permutationsget_cell_reffesget_cell_shapefunsget_cell_typeget_cell_verticesget_face_entityget_face_labelingget_face_maskget_face_tagget_face_tag_indexget_face_to_cellget_face_to_cell_mapget_gridget_grid_topologyget_isboundary_faceget_node_face_ownerget_normal_vectorget_physical_coordinateget_polytopesget_reffaces_offsetsget_reffesget_tag_entitiesget_tag_from_nameget_tag_nameget_tags_from_namesget_triangulationget_volume_triangulationis_orientedis_regularjumpmeannum_cellsnum_entitiesnum_tagsrestrictsimilar_objecttest_boundary_triangulationtest_cell_fieldtest_discrete_modeltest_gridtest_grid_topologytest_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) -> IntGridap.ReferenceFEs.num_cell_dims — Methodnum_cell_dims(::GridTopology) -> Int
num_cell_dims(::Type{<:GridTopology}) -> Intnum_cell_dims(::Triangulation) -> Int
num_cell_dims(::Type{<:Triangulation}) -> IntGridap.Integration.num_point_dims — Methodnum_point_dims(::Quadrature{D}) where D
num_point_dims(::Type{<:Quadrature{D}}) where Dnum_point_dims(::GridTopology) -> Int
num_point_dims(::Type{<:GridTopology}) -> Intnum_point_dims(::Triangulation) -> Int
num_point_dims(::Type{<:Triangulation}) -> IntGridap.Integration.num_dims — Methodnum_dims(::Quadrature{D}) where D where D
num_dims(::Type{<:Quadrature{D}}) where Dnum_dims(::GridTopology) -> Int
num_dims(::Type{<:GridTopology}) -> IntEquivalent to num_cell_dims.
num_dims(::Triangulation) -> Int
num_dims(::Type{<:Triangulation}) -> IntEquivalent to num_cell_dims.
Gridap.ReferenceFEs.is_affine — Methodis_affine(trian::Triangulation) -> BoolGridap.ReferenceFEs.is_first_order — Methodis_first_order(trian::Triangulation) -> BoolGridap.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
endGridap.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
endGridap.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
endThe 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
endGrids
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) -> IntGridap.Geometry.is_oriented — Methodis_oriented(::Type{<:Grid}) -> Bool
is_oriented(a::Grid) -> BoolGridap.Geometry.is_regular — Methodis_regular(::Type{<:Grid}) -> Bool
is_regular(a::Grid) -> BoolGridap.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 dGridap.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}
endGridap.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}
endLow-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 dGridap.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
endGridap.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
endStruct 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}
endGridap.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}
endGridap.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}) -> Intnum_cell_dims(::Triangulation) -> Int
num_cell_dims(::Type{<:Triangulation}) -> IntGridap.Integration.num_point_dims — Methodnum_point_dims(::Quadrature{D}) where D
num_point_dims(::Type{<:Quadrature{D}}) where Dnum_point_dims(::GridTopology) -> Int
num_point_dims(::Type{<:GridTopology}) -> Intnum_point_dims(::Triangulation) -> Int
num_point_dims(::Type{<:Triangulation}) -> IntGridap.Integration.num_dims — Methodnum_dims(::Quadrature{D}) where D where D
num_dims(::Type{<:Quadrature{D}}) where Dnum_dims(::GridTopology) -> Int
num_dims(::Type{<:GridTopology}) -> IntEquivalent to num_cell_dims.
num_dims(::Triangulation) -> Int
num_dims(::Type{<:Triangulation}) -> IntEquivalent 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) -> BoolGridap.ReferenceFEs.is_n_cube — Methodis_n_cube(p::GridTopology) -> BoolGridap.Geometry.is_oriented — Methodis_oriented(::Type{<:GridTopology}) -> Bool
is_oriented(a::GridTopology) -> BoolGridap.Geometry.is_regular — Methodis_regular(::Type{<:GridTopology}) -> Bool
is_regular(a::GridTopology) -> BoolGridap.ReferenceFEs.get_reffaces — Methodget_reffaces(::Type{Polytope{d}}, g::GridTopology) where dBy 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 dGridap.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
endGridap.Geometry.UnstructuredGridTopology — MethodUnstructuredGridTopology(
vertex_coordinates::Vector{<:Point},
cell_vertices::Table,
cell_type::Vector{<:Integer},
polytopes::Vector{<:Polytope},
orientation::Val{O}=Val{false}()) where OGridap.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 ODiscreteModels
Interface
Gridap.Geometry.DiscreteModel — Typeabstract type DiscreteModel{Dc,Dp} <: GridapTypeAbstract 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 dGridap.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 dGridap.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 dGridap.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
endGridap.Geometry.UnstructuredDiscreteModel — MethodUnstructuredDiscreteModel(grid::Grid)CartesianDiscreteModels
Gridap.Geometry.CartesianDiscreteModel — Typestruct CartesianDiscreteModel{D,T,F} <: DiscreteModel{D,D}
# Private Fields
endGridap.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 endGridap.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 endGridap.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
endGridap.Geometry.SkeletonCellField — Typestruct SkeletonCellField <: GridapType
left::CellField
right::CellField
endSupports 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)