Gridap.CellData
Gridap.CellData — Module
Exported names
CellDatum, CellDof, CellField, CellPoint, CellQuadrature, CellState, DiracDelta, DomainContribution, DomainStyle, GenericCellField, Integrand, Interpolable, KDTreeSearch, Measure, PhysicalDomain, ReferenceDomain, SkeletonCellFieldPair, add_contribution!, attach_constraints_cols, attach_constraints_rows, attach_dirichlet, change_domain, compute_cell_points_from_vector_of_points, cross, det, dot, double_contraction, get_cell_measure, get_cell_points, get_contribution, get_data, get_domains, get_normal_vector, get_physical_coordinate, get_tangent_vector, get_triangulation, gradient, identity_constraints, inner, jump, make_inverse_table, mean, num_domains, outer, symmetric_part, test_cell_datum, tr, update_state!, ×, ∇, ∇∇, ∫, ⊗, ⊙, ⋅, ⋅², ⋅¹,
Gridap.CellData.CellDatum — Type
abstract type CellDatum <: GridapTypeData associated with the cells of a Triangulation. CellDatum objects behave as if they are defined in the physical space of the triangulation. But in some cases they are implemented as reference quantities plus some transformation to the physical domain.
Gridap.CellData.CellPoint — Type
A single point or an array of points on the cells of a Triangulation CellField objects can be evaluated efficiently at CellPoint instances.
Gridap.CellData.CellState — Type
This can be used as a CellField as long as one evaluates it on the stored CellPoint.
Gridap.CellData.CompositeMeasure — Type
struct CompositeMeasure <: Measure
ttrian :: Triangulation
itrian :: Triangulation
quad :: CellQuadrature
endMeasure such that the integration and target triangulations are different.
ttrian: Target triangulation, where the domain contribution lives.itrian: Integration triangulation, where the integration takes place.quad:::CellQuadrature, defined initrian
Gridap.CellData.DiracDelta — Type
const DiracDelta{D} = GenericDiracDelta{D,D,IsGridEntity}Gridap.CellData.DiracDelta — Method
DiracDelta{D}(model::DiscreteModel, degree; tags)
DiracDelta{0}(model::DiscreteModel; tags)
DiracDelta{D}(model::DiscreteModel, labeling::FaceLabeling, degree; tags)
DiracDelta{0}(model::DiscreteModel, labeling::FaceLabeling; tags)
DiracDelta{D}(model::DiscreteModel, face_to_bgface::AbstractVector{<:Integer}, degree)
DiracDelta{D}(model::DiscreteModel, bgface_to_mask::AbstractVector{Bool}, degree)
DiracDelta( model::DiscreteModel{D}, p::Point{D,T})
DiracDelta( model::DiscreteModel{D}, pvec::Vector{Point{D,T}})where degree isa Integer.
Gridap.CellData.DomainContribution — Type
struct DomainContribution <: GridapTypeStruct to gather contributions from one or several domain(s) (Triangulations).
Gridap.CellData.DomainStyle — Type
abstract type DomainStyleTrait that signals if a <:CellDatum type is implemented in the physical or the reference domain, the possible values are ReferenceDomain() and PhysicalDomain().
Gridap.CellData.DomainStyle — Method
DomainStyle(::Type{<:CellDatum})Tell if the stored array is in the reference or physical domain.
Gridap.CellData.Integrand — Type
struct Integrand object end
∫(object)Generic placeholder for a quantity object to be integrated against a CellQuadrature.
Gridap.CellData.Interpolable — Type
struct Interpolable{M,A} <: FunctionGridap.CellData.Interpolable — Method
Interpolable(uh; tol=1e-6, searchmethod=KDTreeSearch(; tol=tol))Gridap.CellData.Measure — Type
abstract type Measure <: GridapTypeFor measures to integrate against, see integrate.
Gridap.CellData.SkeletonCellFieldPair — Type
struct SkeletonCellFieldPair{...}SkeletonCellFieldPair is a special construct for allowing uh.plus and uh.minus to be two different CellFields. In particular, it is useful when we need one of the CellFields to be the dualized version of the other for performing ForwardDiff AD of a skeleton integration DomainContribution wrt to the degrees of freedom of the CellField, plus and minus sensitivities done separately, so as to restrict the interaction between the dual numbers.
It takes in two CellFields and stores plus version of CellFieldAt of the first CellField and minus version of CellFieldAt of the second the CellField. SkeletonCellFieldPair is associated with same triangulation as that of the CellFields (we check if the triangulations of both CellFields match)
SkeletonCellFieldPair is an internal convenience artifact/construct to aid in dualizing plus and minus side around a skeleton face separately to perform the sensitivity of degrees of freedom of cells sharing the skeleton face, without the interaction dual numbers of the two cells. The user doesn't have to deal with this construct anywhere when performing AD of functionals involving integration over skeleton faces using the public API.
Gridap.Arrays.get_array — Method
get_array(a::CellDatum)Get the raw array of a datas defined in the physical space.
Gridap.CellData.add_contribution! — Function
add_contribution!(a::DomainContribution, trian::Triangulation, b::AbstractArray, op=+)Gridap.CellData.attach_constraints_cols — Function
attach_constraints_cols(cellmat, cellconstr, cellmask=Fill(true,...))Gridap.CellData.attach_constraints_rows — Function
attach_constraints_rows(cellvec, cellconstr, cellmask=(true,...))Gridap.CellData.attach_dirichlet — Function
attach_dirichlet(cellmatvec, cellvals, cellmask=(true,...))Gridap.CellData.change_domain — Method
change_domain(a::CellDatum, target_domain)
change_domain(a::CellDatum, input_domain, target_domain)where a isa CellDatum and the domains are DomainStyles. Change the underlying data to the target domain
Gridap.CellData.compute_cell_points_from_vector_of_points — Method
compute_cell_points_from_vector_of_points(xs::AbstractVector{<:Point},
trian::Triangulation, domain_style::PhysicalDomain)Gridap.CellData.distance — Method
distance(poly::ExtrusionPolytope, inv_cmap::Field, x::Point)Calculate distance from point x to a polytope. The polytope is given by its type poly and by the inverse cell map, i.e. by the map from the physical to the reference space.
Positive distances are outside the polytope, negative distances are inside the polytope.
The distance is measured in an unspecified norm, currently the L∞ norm.
Gridap.CellData.get_cell_measure — Method
get_cell_measure(trian)
get_cell_measure(strian, ttrian)where all arguments are Triangulations, returns a vector containing the volume of each cell of [t]trian.
Gridap.CellData.get_contribution — Method
get_contribution(a::DomainContribution, trian::Triangulation)Returns the array of contributions on trian in a.
Gridap.CellData.get_data — Method
get_data(a::CellDatum)Get the stored array of cell-wise data. It can be defined in the physical or the reference domain.
Gridap.CellData.get_domains — Method
get_domains(a::DomainContribution)Gridap.CellData.get_normal_vector — Method
get_normal_vector(trian::Triangulation)Gridap.CellData.get_physical_coordinate — Method
get_physical_coordinate(trian::Triangulation)In contrast to getcellmap, the returned object:
- is a
CellField - its gradient is the identity tensor
Gridap.CellData.get_tangent_vector — Method
get_tangent_vector(trian::Triangulation)Gridap.CellData.identity_constraints — Method
identity_constraints(cell_axes)Dummy constraints for Unconstrained spaces.
Gridap.CellData.jump — Method
jump(a::CellField)
jump(a::SkeletonPair{<:CellField})Jump operator at interior facets of the supporting Triangulation, defined by jump(a n) = ⟦a n⟧ = a⁺n⁺ + a⁻n⁻, where n is an oriented normal field to the interior facets, n⁺ = -n⁻ are the normal pointing into the element on the + and - side of the facets, and a⁺/a⁻ are the restrictions of a to each element respectively.
Gridap.CellData.make_inverse_table — Method
make_inverse_table(i2j::AbstractVector{<:Integer}, nj::Int)Gridap.CellData.num_domains — Method
num_domains(a::DomainContribution)Gridap.CellData.update_state! — Method
update_state!(updater::Function, f::CellField...)Gridap.Fields.integrate — Method
integrate(integrand, dΩ::Measure)
integrate(integrand, dΩ::CellQuadrature)
(integrand::Integrand) * dΩ
∫(quantity) * dΩ
∫(quantity)dΩHigh level integral definition API, the integrand can be created using ∫.
Gridap.Geometry.get_triangulation — Method
get_triangulation(a::CellDatum)Return the underlying Triangulation object.
Gridap.Geometry.num_cells — Method
num_cells(a::CellDatum)Number of cells of a.
Statistics.mean — Method
mean(a::CellField)Similar to jump, but for the mean operator a ⟶ (a⁺ + a⁻)/2.