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

Aggregated variable array of arbitrary types (no variable arrays) WARNING Arcane variables must be resized beforehand!!! More...

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

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

Classes

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

Public Member Functions

 VariableArray (const Family &family)
 VariableArray (const VariableArray &v)
ArrayView< DataType > operator[] (const Group::BlockItemEnumerator &item)
 Direct accessor by an AnyItem enumerator.
ConstArrayView< DataType > operator[] (const Group::BlockItemEnumerator &item) const
 Direct accessor by an AnyItem enumerator.
ArrayView< DataType > operator[] (const LinkFamily::LinkData &item)
 Direct accessor by a LinkFamily element (LinkData).
ConstArrayView< DataType > operator[] (const LinkFamily::LinkData &item) const
 Direct accessor by a LinkFamily element (LinkData).
VariableAdder operator[] (const ItemGroup &group)
 Addition of 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.
Array2View< DataType > valuesAtGroup (const Integer igrp)
 Raw data associated with a group identified relative to its family.
ConstArray2View< 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, Array2View< DataType > v)
void _insertPartialVariable (ItemGroup group, Array2View< DataType > v)
void _insertInternalVariable (ItemGroup group, IVariable *v)

Private Attributes

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

Detailed Description

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

Aggregated variable array of arbitrary types (no variable arrays) WARNING Arcane variables must be resized beforehand!!!

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 56 of file AnyItemVariableArray.h.

Constructor & Destructor Documentation

◆ VariableArray() [1/2]

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

Definition at line 112 of file AnyItemVariableArray.h.

◆ VariableArray() [2/2]

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

Definition at line 123 of file AnyItemVariableArray.h.

◆ ~VariableArray()

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

Definition at line 132 of file AnyItemVariableArray.h.

Member Function Documentation

◆ _insertInternalVariable()

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

Definition at line 233 of file AnyItemVariableArray.h.

◆ _insertPartialVariable()

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

Definition at line 226 of file AnyItemVariableArray.h.

◆ _insertVariable()

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

Definition at line 219 of file AnyItemVariableArray.h.

◆ family()

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

Accessor to the family.

Definition at line 175 of file AnyItemVariableArray.h.

References m_family.

◆ notifyFamilyIsIncreased()

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

Notification of family enlargement.

Implements Arcane::AnyItem::IFamilyObserver.

Definition at line 206 of file AnyItemVariableArray.h.

References m_family, m_values, and m_variables.

◆ notifyFamilyIsInvalidate()

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

Notification of family invalidation.

Implements Arcane::AnyItem::IFamilyObserver.

Definition at line 196 of file AnyItemVariableArray.h.

References m_family, m_values, and m_variables.

◆ operator[]() [1/6]

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

Direct accessor by an AnyItem enumerator.

Definition at line 139 of file AnyItemVariableArray.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>
ConstArrayView< DataType > Arcane::AnyItem::VariableArray< DataType >::operator[] ( const Group::BlockItemEnumerator & item) const
inline

Direct accessor by an AnyItem enumerator.

Definition at line 145 of file AnyItemVariableArray.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::VariableArray< DataType >::operator[] ( const ItemGroup & group)
inline

Addition of a variable for a group.

Definition at line 163 of file AnyItemVariableArray.h.

◆ operator[]() [4/6]

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

Definition at line 169 of file AnyItemVariableArray.h.

◆ operator[]() [5/6]

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

Direct accessor by a LinkFamily element (LinkData).

Definition at line 151 of file AnyItemVariableArray.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>
ConstArrayView< DataType > Arcane::AnyItem::VariableArray< DataType >::operator[] ( const LinkFamily::LinkData & item) const
inline

Direct accessor by a LinkFamily element (LinkData).

Definition at line 157 of file AnyItemVariableArray.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>
Array2View< DataType > Arcane::AnyItem::VariableArray< DataType >::valuesAtGroup ( const Integer igrp)
inline

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

Definition at line 184 of file AnyItemVariableArray.h.

References m_values.

◆ valuesAtGroup() [2/2]

template<typename DataType>
ConstArray2View< DataType > Arcane::AnyItem::VariableArray< DataType >::valuesAtGroup ( const Integer igrp) const
inline

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

Definition at line 190 of file AnyItemVariableArray.h.

References m_values.

◆ variables()

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

Array of variables.

Definition at line 178 of file AnyItemVariableArray.h.

References m_variables.

Member Data Documentation

◆ m_family

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

AnyItem family of groups.

Definition at line 241 of file AnyItemVariableArray.h.

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

◆ m_values

template<typename DataType>
Arcane::UniqueArray<Array2View<DataType> > Arcane::AnyItem::VariableArray< DataType >::m_values
private

◆ m_variables

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

Container of variables.

Definition at line 247 of file AnyItemVariableArray.h.

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


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