Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::AnyItem::Variable< DataType > Class Template Reference

Aggregated variable of arbitrary types (no array variables). More...

#include <arcane/core/anyitem/AnyItemVariable.h>

Inheritance diagram for Arcane::AnyItem::Variable< DataType >:
Collaboration diagram for Arcane::AnyItem::Variable< DataType >:

Classes

class  VariableAdder
 Tool for adding a variable to a group. More...

Public Member Functions

 Variable (const Family &family)
 Variable (const Variable &v)
DataType & operator[] (const Group::BlockItemEnumerator &item)
 Direct accessor by an AnyItem enumerator.
const DataType & operator[] (const Group::BlockItemEnumerator &item) const
 Direct accessor by an AnyItem enumerator.
DataType & operator[] (const LinkFamily::LinkData &item)
 Direct accessor by a LinkFamily element (LinkData).
const DataType & operator[] (const LinkFamily::LinkData &item) const
 Direct accessor by a LinkFamily element (LinkData).
VariableAdder operator[] (const ItemGroup &group)
 Adding a variable for a group.
template<typename T>
VariableAdder operator[] (const ItemGroupT< T > &group)
const Familyfamily () const
 Accessor to the family.
ConstArrayView< IVariable * > variables () const
 Array of variables.
ArrayView< DataType > valuesAtGroup (const Integer igrp)
 Raw data associated with a group identified relative to its family.
ConstArrayView< DataType > valuesAtGroup (const Integer igrp) const
 Raw data associated with a group identified relative to its family.
void notifyFamilyIsInvalidate ()
 Notification of family invalidation.
void notifyFamilyIsIncreased ()
 Notification of family enlargement.

Private Member Functions

void _insertVariable (ItemGroup group, ArrayView< DataType > v)
void _insertPartialVariable (ItemGroup group, ArrayView< DataType > v)
void _insertInternalVariable (ItemGroup group, IVariable *v)

Private Attributes

const Family m_family
 AnyItem Family of groups.
Arcane::UniqueArray< ArrayView< DataType > > m_values
 Container of generic variables.
Arcane::UniqueArray< IVariable * > m_variables
 Container of variables.

Detailed Description

template<typename DataType>
class Arcane::AnyItem::Variable< DataType >

Aggregated variable of arbitrary types (no array variables).

For example:

AnyItem::Family family;

family << AnyItem::GroupBuilder( allFaces() ) << AnyItem::GroupBuilder( allCells() );

AnyItem::Variable<Real> variable(family);

variable[allFaces()] << m_face_variable; variable[allCells()] << m_cell_variable;

Real value = 0.; ENUMERATE_ANY_ITEM(iitem, family.allItems()) { value += variable[iitem]; }

Definition at line 54 of file AnyItemVariable.h.

Constructor & Destructor Documentation

◆ Variable() [1/2]

template<typename DataType>
Arcane::AnyItem::Variable< DataType >::Variable ( const Family & family)
inline

Definition at line 110 of file AnyItemVariable.h.

◆ Variable() [2/2]

template<typename DataType>
Arcane::AnyItem::Variable< DataType >::Variable ( const Variable< DataType > & v)
inline

Definition at line 121 of file AnyItemVariable.h.

◆ ~Variable()

template<typename DataType>
Arcane::AnyItem::Variable< DataType >::~Variable ( )
inline

Definition at line 130 of file AnyItemVariable.h.

Member Function Documentation

◆ _insertInternalVariable()

template<typename DataType>
void Arcane::AnyItem::Variable< DataType >::_insertInternalVariable ( ItemGroup group,
IVariable< DataType > * v )
inlineprivate

Definition at line 231 of file AnyItemVariable.h.

◆ _insertPartialVariable()

template<typename DataType>
void Arcane::AnyItem::Variable< DataType >::_insertPartialVariable ( ItemGroup group,
ArrayView< DataType > v )
inlineprivate

Definition at line 224 of file AnyItemVariable.h.

◆ _insertVariable()

template<typename DataType>
void Arcane::AnyItem::Variable< DataType >::_insertVariable ( ItemGroup group,
ArrayView< DataType > v )
inlineprivate

Definition at line 217 of file AnyItemVariable.h.

◆ family()

template<typename DataType>
const Family & Arcane::AnyItem::Variable< DataType >::family ( ) const
inline

Accessor to the family.

Definition at line 173 of file AnyItemVariable.h.

References m_family.

◆ notifyFamilyIsIncreased()

template<typename DataType>
void Arcane::AnyItem::Variable< DataType >::notifyFamilyIsIncreased ( )
inlinevirtual

Notification of family enlargement.

Implements Arcane::AnyItem::IFamilyObserver.

Definition at line 204 of file AnyItemVariable.h.

References m_family, m_values, and m_variables.

◆ notifyFamilyIsInvalidate()

template<typename DataType>
void Arcane::AnyItem::Variable< DataType >::notifyFamilyIsInvalidate ( )
inlinevirtual

Notification of family invalidation.

Implements Arcane::AnyItem::IFamilyObserver.

Definition at line 194 of file AnyItemVariable.h.

References m_family, m_values, and m_variables.

◆ operator[]() [1/6]

template<typename DataType>
DataType & Arcane::AnyItem::Variable< DataType >::operator[] ( const Group::BlockItemEnumerator & item)
inline

Direct accessor by an AnyItem enumerator.

Definition at line 137 of file AnyItemVariable.h.

References Arcane::AnyItem::Group::BlockItemEnumerator::groupIndex(), m_values, and Arcane::AnyItem::Group::BlockItemEnumerator::varIndex().

Here is the call graph for this function:

◆ operator[]() [2/6]

template<typename DataType>
const DataType & Arcane::AnyItem::Variable< DataType >::operator[] ( const Group::BlockItemEnumerator & item) const
inline

Direct accessor by an AnyItem enumerator.

Definition at line 143 of file AnyItemVariable.h.

References Arcane::AnyItem::Group::BlockItemEnumerator::groupIndex(), m_values, and Arcane::AnyItem::Group::BlockItemEnumerator::varIndex().

Here is the call graph for this function:

◆ operator[]() [3/6]

template<typename DataType>
VariableAdder Arcane::AnyItem::Variable< DataType >::operator[] ( const ItemGroup & group)
inline

Adding a variable for a group.

Definition at line 161 of file AnyItemVariable.h.

◆ operator[]() [4/6]

template<typename DataType>
template<typename T>
VariableAdder Arcane::AnyItem::Variable< DataType >::operator[] ( const ItemGroupT< T > & group)
inline

Definition at line 167 of file AnyItemVariable.h.

◆ operator[]() [5/6]

template<typename DataType>
DataType & Arcane::AnyItem::Variable< DataType >::operator[] ( const LinkFamily::LinkData & item)
inline

Direct accessor by a LinkFamily element (LinkData).

Definition at line 149 of file AnyItemVariable.h.

References Arcane::AnyItem::LinkFamilyInternal::LinkData::groupIndex(), m_values, and Arcane::AnyItem::LinkFamilyInternal::LinkData::varIndex().

Here is the call graph for this function:

◆ operator[]() [6/6]

template<typename DataType>
const DataType & Arcane::AnyItem::Variable< DataType >::operator[] ( const LinkFamily::LinkData & item) const
inline

Direct accessor by a LinkFamily element (LinkData).

Definition at line 155 of file AnyItemVariable.h.

References Arcane::AnyItem::LinkFamilyInternal::LinkData::groupIndex(), m_values, and Arcane::AnyItem::LinkFamilyInternal::LinkData::varIndex().

Here is the call graph for this function:

◆ valuesAtGroup() [1/2]

template<typename DataType>
ArrayView< DataType > Arcane::AnyItem::Variable< DataType >::valuesAtGroup ( const Integer igrp)
inline

Raw data associated with a group identified relative to its family.

Definition at line 182 of file AnyItemVariable.h.

References m_values.

◆ valuesAtGroup() [2/2]

template<typename DataType>
ConstArrayView< DataType > Arcane::AnyItem::Variable< DataType >::valuesAtGroup ( const Integer igrp) const
inline

Raw data associated with a group identified relative to its family.

Definition at line 188 of file AnyItemVariable.h.

References m_values.

◆ variables()

template<typename DataType>
ConstArrayView< IVariable * > Arcane::AnyItem::Variable< DataType >::variables ( ) const
inline

Array of variables.

Definition at line 176 of file AnyItemVariable.h.

References m_variables.

Member Data Documentation

◆ m_family

template<typename DataType>
const Family Arcane::AnyItem::Variable< DataType >::m_family
private

AnyItem Family of groups.

Definition at line 239 of file AnyItemVariable.h.

Referenced by family(), notifyFamilyIsIncreased(), and notifyFamilyIsInvalidate().

◆ m_values

template<typename DataType>
Arcane::UniqueArray<ArrayView<DataType> > Arcane::AnyItem::Variable< DataType >::m_values
private

◆ m_variables

template<typename DataType>
Arcane::UniqueArray<IVariable*> Arcane::AnyItem::Variable< DataType >::m_variables
private

Container of variables.

Definition at line 245 of file AnyItemVariable.h.

Referenced by notifyFamilyIsIncreased(), notifyFamilyIsInvalidate(), and variables().


The documentation for this class was generated from the following file: