MGIS
Loading...
Searching...
No Matches
mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable > Struct Template Reference
Inheritance diagram for mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >:
mgis::PreconditionsChecker< CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable > > mgis::function::CoalescedMemoryAccessCompositeTensorsView< Space, N, is_mutable > mgis::function::CoalescedMemoryAccessTensorView< Space, TensorType, is_mutable >

Public Types

template<size_type size>
using MutableValues = std::array< real *, size >
 
template<size_type size>
using ConstValues = std::array< const real *, size >
 
using ScalarComponentFunctionView = FunctionView< Space, FunctionDataLayoutDescription{.data_size=1,.data_stride=1}, is_mutable >
 type of the function view associated with a single component
 

Public Member Functions

constexpr CoalescedMemoryAccessFunctionViewBase (const std::array< ScalarComponentFunctionView, N > &)
 
constexpr CoalescedMemoryAccessFunctionViewBase (const Space &, std::span< const real >)
 
constexpr CoalescedMemoryAccessFunctionViewBase (const Space &, std::span< real >)
 
constexpr MutableValues< NgetValuesPointers (const size_type)
 
constexpr MutableValues< NgetValuesPointers (const size_type, const size_type)
 
constexpr ConstValues< NgetValuesPointers (const size_type) const
 
constexpr ConstValues< NgetValuesPointers (const size_type, const size_type) const
 
template<size_type begin, size_type size>
requires ((begin + size <= N) && is_mutable && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr MutableValues< size > getValuesPointers (const size_type)
 
template<size_type begin, size_type size>
requires ((begin + size <= N) && is_mutable && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr MutableValues< size > getValuesPointers (const size_type, const size_type)
 
template<size_type begin, size_type size>
requires ((begin + size <= N) && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr ConstValues< size > getValuesPointers (const size_type) const
 
template<size_type begin, size_type size>
requires ((begin + size <= N) && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr ConstValues< size > getValuesPointers (const size_type, const size_type) const
 
template<size_type offset>
requires ((offset < N) && is_mutable && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr realgetValuePointer (const size_type)
 
template<size_type offset>
requires ((offset < N) && is_mutable && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr realgetValuePointer (const size_type, const size_type)
 
template<size_type offset>
requires ((offset < N) && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr const realgetValuePointer (const size_type) const
 
template<size_type offset>
requires ((offset < N) && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr const realgetValuePointer (const size_type, const size_type) const
 
template<size_type begin, size_type size>
requires (N > 0) ((begin + size <= N) && is_mutable && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template MutableValues< size > getValuesPointers (const size_type i)
 
template<size_type begin, size_type size>
requires (N > 0) ((begin + size <= N) && is_mutable && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template MutableValues< size > getValuesPointers (const size_type e, const size_type q)
 
template<size_type begin, size_type size>
requires (N > 0) ((begin + size <= N) && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template ConstValues< size > getValuesPointers (const size_type i) const
 
template<size_type begin, size_type size>
requires (N > 0) ((begin + size <= N) && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template ConstValues< size > getValuesPointers (const size_type e, const size_type q) const
 

Static Public Member Functions

static constexpr bool checkPreconditions (AbstractErrorHandler &, const std::array< ScalarComponentFunctionView, N > &)
 check that the preconditions to build the view are met
 
static constexpr bool checkPreconditions (AbstractErrorHandler &, const Space &space, std::span< const real >)
 check that the preconditions to build the view are met
 
static constexpr bool checkPreconditions (AbstractErrorHandler &, const Space &, std::span< real >)
 check that the preconditions to build the view are met
 

Protected Member Functions

template<bool doPreconditionsCheck>
requires (N > 0)
constexpr CoalescedMemoryAccessFunctionViewBase (const PreconditionsCheck< doPreconditionsCheck > &, const std::array< ScalarComponentFunctionView, N > &)
 
template<bool doPreconditionsCheck>
requires (!is_mutable)
constexpr CoalescedMemoryAccessFunctionViewBase (const PreconditionsCheck< doPreconditionsCheck > &, const Space &, std::span< const real >)
 
template<bool doPreconditionsCheck>
constexpr CoalescedMemoryAccessFunctionViewBase (const PreconditionsCheck< doPreconditionsCheck > &, const Space &, std::span< real >)
 

Static Protected Member Functions

static constexpr auto splitValues (const Space &, std::span< real >)
 
static constexpr auto splitValues (const Space &, std::span< const real >)
 

Protected Attributes

std::array< ScalarComponentFunctionView, Nfunction_components
 function's view for each component
 

Constructor & Destructor Documentation

◆ CoalescedMemoryAccessFunctionViewBase() [1/6]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (N > 0)
constexpr mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::CoalescedMemoryAccessFunctionViewBase ( const std::array< ScalarComponentFunctionView, N > &  components)
constexpr
Parameters
[in]componentscomponents

◆ CoalescedMemoryAccessFunctionViewBase() [2/6]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (!is_mutable)
constexpr mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::CoalescedMemoryAccessFunctionViewBase ( const Space &  space,
std::span< const real values 
)
constexpr
Parameters
[in]spacespace
[in]valuesvalues

◆ CoalescedMemoryAccessFunctionViewBase() [3/6]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
constexpr mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::CoalescedMemoryAccessFunctionViewBase ( const Space &  ,
std::span< real  
)
constexpr
Parameters
[in]spacespace
[in]valuesvalues

◆ CoalescedMemoryAccessFunctionViewBase() [4/6]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (N > 0)
template<bool doPreconditionsCheck>
requires (N > 0)
constexpr mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::CoalescedMemoryAccessFunctionViewBase ( const PreconditionsCheck< doPreconditionsCheck > &  pcheck,
const std::array< ScalarComponentFunctionView, N > &  components 
)
constexprprotected
Parameters
[in]componentscomponents

◆ CoalescedMemoryAccessFunctionViewBase() [5/6]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (!is_mutable)
template<bool doPreconditionsCheck>
requires (!is_mutable)
constexpr mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::CoalescedMemoryAccessFunctionViewBase ( const PreconditionsCheck< doPreconditionsCheck > &  pcheck,
const Space &  space,
std::span< const real values 
)
constexprprotected
Parameters
[in]valuesvalues

◆ CoalescedMemoryAccessFunctionViewBase() [6/6]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
template<bool doPreconditionsCheck>
constexpr mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::CoalescedMemoryAccessFunctionViewBase ( const PreconditionsCheck< doPreconditionsCheck > &  ,
const Space &  ,
std::span< real  
)
constexprprotected
Parameters
[in]valuesvalues

Member Function Documentation

◆ checkPreconditions() [1/3]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
static constexpr bool mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::checkPreconditions ( AbstractErrorHandler ,
const Space &  ,
std::span< real  
)
staticconstexpr

check that the preconditions to build the view are met

Parameters
[in]eherror handler.
[in]spacespace
[in]valuesvalues

◆ checkPreconditions() [2/3]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (!is_mutable)
constexpr bool mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::checkPreconditions ( AbstractErrorHandler eh,
const Space &  space,
std::span< const real values 
)
staticconstexpr

check that the preconditions to build the view are met

Parameters
[in]eherror handler.
[in]spacespace
[in]valuesvalues

◆ checkPreconditions() [3/3]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (N > 0)
constexpr bool mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::checkPreconditions ( AbstractErrorHandler eh,
const std::array< ScalarComponentFunctionView, N > &  components 
)
staticconstexpr

check that the preconditions to build the view are met

Parameters
[in]eherror handler.
[in]componentscomponents

◆ getValuePointer() [1/4]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires ((offset < N) && is_mutable && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
template<size_type offset>
requires ((offset < N) && is_mutable && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr real * mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuePointer ( const size_type  i)
constexpr
Returns
the data associated with an integration point
Parameters
[in]ooffset associated with the integration point

◆ getValuePointer() [2/4]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires ((offset < N) && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
template<size_type offset>
requires ((offset < N) && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr const real * mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuePointer ( const size_type  i) const
constexpr
Returns
the data associated with an integration point
Parameters
[in]ooffset associated with the integration point

◆ getValuePointer() [3/4]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires ((offset < N) && is_mutable && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
template<size_type offset>
requires ((offset < N) && is_mutable && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr real * mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuePointer ( const size_type  e,
const size_type  q 
)
constexpr
Returns
the data associated with an integration point
Parameters
[in]eelement index
[in]iquadrature point index

◆ getValuePointer() [4/4]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires ((offset < N) && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
template<size_type offset>
requires ((offset < N) && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr const real * mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuePointer ( const size_type  e,
const size_type  q 
) const
constexpr
Returns
the data associated with an integration point
Parameters
[in]eelement index
[in]iquadrature point index

◆ getValuesPointers() [1/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (is_mutable&& LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template MutableValues< N > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  i)
constexpr
Returns
the data associated with an integration point
Parameters
[in]ooffset associated with the integration point

◆ getValuesPointers() [2/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
template<size_type begin, size_type size>
requires ((begin + size <= N) && is_mutable && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr MutableValues< size > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  )
constexpr
Returns
the data associated with an integration point
Parameters
[in]ooffset associated with the integration point

◆ getValuesPointers() [3/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template ConstValues< N > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  i) const
constexpr
Returns
the data associated with an integration point
Parameters
[in]ooffset associated wNith the integration point

◆ getValuesPointers() [4/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
template<size_type begin, size_type size>
requires ((begin + size <= N) && LinearElementSpaceConcept<Space> && (!hasElementWorkspace<Space>))
constexpr ConstValues< size > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  ) const
constexpr
Returns
the data associated with an integration point
Parameters
[in]ooffset associated with the integration point

◆ getValuesPointers() [5/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (is_mutable&& LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template MutableValues< N > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  e,
const size_type  q 
)
constexpr
Returns
the data associated with an integration point
Parameters
[in]eelement index
[in]iquadrature point index

◆ getValuesPointers() [6/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
template<size_type begin, size_type size>
requires ((begin + size <= N) && is_mutable && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr MutableValues< size > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  ,
const size_type   
)
constexpr
Returns
the data associated with an integration point
Parameters
[in]eelement index
[in]iquadrature point index

◆ getValuesPointers() [7/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
requires (LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::template ConstValues< N > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  e,
const size_type  q 
) const
constexpr
Returns
the data associated with an integration point
Parameters
[in]eelement index
[in]iquadrature point index

◆ getValuesPointers() [8/8]

template<FunctionalSpaceConcept Space, size_type N, bool is_mutable>
template<size_type begin, size_type size>
requires ((begin + size <= N) && LinearQuadratureSpaceConcept<Space> && (!hasCellWorkspace<Space>))
constexpr ConstValues< size > mgis::function::CoalescedMemoryAccessFunctionViewBase< Space, N, is_mutable >::getValuesPointers ( const size_type  ,
const size_type   
) const
constexpr
Returns
the data associated with an integration point
Parameters
[in]eelement index
[in]iquadrature point index

The documentation for this struct was generated from the following files: