pub trait FunctionSpaceTrait {
type C: Communicator;
type T: RlstScalar;
type Grid: Grid<T = <Self::T as RlstScalar>::Real, EntityDescriptor = ReferenceCellType> + ParallelGrid<Self::C>;
type FiniteElement: FiniteElement<T = Self::T> + Sync;
// Required methods
fn comm(&self) -> &Self::C;
fn grid(&self) -> &Self::Grid;
fn element(&self, cell_type: ReferenceCellType) -> &Self::FiniteElement;
fn is_serial(&self) -> bool;
fn get_local_dof_numbers(
&self,
entity_dim: usize,
entity_number: usize,
) -> &[usize];
fn local_size(&self) -> usize;
fn global_size(&self) -> usize;
fn cell_dofs(&self, cell: usize) -> Option<&[usize]>;
unsafe fn cell_dofs_unchecked(&self, cell: usize) -> &[usize];
fn cell_colouring(&self) -> HashMap<ReferenceCellType, Vec<Vec<usize>>>;
fn global_dof_index(&self, local_dof_index: usize) -> usize;
fn ownership(&self, local_dof_index: usize) -> Ownership;
}
Expand description
A function space
Required Associated Types§
Sourcetype Grid: Grid<T = <Self::T as RlstScalar>::Real, EntityDescriptor = ReferenceCellType> + ParallelGrid<Self::C>
type Grid: Grid<T = <Self::T as RlstScalar>::Real, EntityDescriptor = ReferenceCellType> + ParallelGrid<Self::C>
The grid type
Sourcetype FiniteElement: FiniteElement<T = Self::T> + Sync
type FiniteElement: FiniteElement<T = Self::T> + Sync
The finite element type
Required Methods§
Sourcefn element(&self, cell_type: ReferenceCellType) -> &Self::FiniteElement
fn element(&self, cell_type: ReferenceCellType) -> &Self::FiniteElement
Get the finite element used to define this function space
Sourcefn get_local_dof_numbers(
&self,
entity_dim: usize,
entity_number: usize,
) -> &[usize]
fn get_local_dof_numbers( &self, entity_dim: usize, entity_number: usize, ) -> &[usize]
Get the DOF numbers on the local process associated with the given entity
Sourcefn local_size(&self) -> usize
fn local_size(&self) -> usize
Get the number of DOFs associated with the local process
Sourcefn global_size(&self) -> usize
fn global_size(&self) -> usize
Get the number of DOFs on all processes
Sourcefn cell_dofs(&self, cell: usize) -> Option<&[usize]>
fn cell_dofs(&self, cell: usize) -> Option<&[usize]>
Get the local DOF numbers associated with a cell
Sourceunsafe fn cell_dofs_unchecked(&self, cell: usize) -> &[usize]
unsafe fn cell_dofs_unchecked(&self, cell: usize) -> &[usize]
Sourcefn cell_colouring(&self) -> HashMap<ReferenceCellType, Vec<Vec<usize>>>
fn cell_colouring(&self) -> HashMap<ReferenceCellType, Vec<Vec<usize>>>
Compute a colouring of the cells so that no two cells that share an entity with DOFs associated with it are assigned the same colour
Sourcefn global_dof_index(&self, local_dof_index: usize) -> usize
fn global_dof_index(&self, local_dof_index: usize) -> usize
Get the global DOF index associated with a local DOF index