Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents > Class Template Reference

Base class managing a multi-dimensional variable on a mesh entity. More...

#include <arcane/core/MeshMDVariableRef.h>

Public Types

using UnderlyingVariableType = MeshVariableArrayRefT<ItemType, DataType>
using MDSpanType = MDSpan<DataType, Extents, RightLayout>
using ItemLocalIdType = typename ItemType::LocalIdType
using FullExtentsType = Extents

Public Member Functions

 MeshMDVariableRefBaseT (const VariableBuildInfo &b)
UnderlyingVariableType & underlyingVariable ()
 Associated underlying variable.
ArrayShape fullShape () const
 Full shape (static + dynamic) of the variable.
Public Member Functions inherited from Arcane::MeshVariableRef
 MeshVariableRef (const VariableBuildInfo &vb)
 Constructs a reference linked to the module.
void synchronize ()
void synchronize (Int32ConstArrayView local_ids)
Public Member Functions inherited from Arcane::VariableRef
virtual ~VariableRef ()
 Releases resources.
ISubDomainsubDomain () const
 Sub-domain associated with the variable (TODO deprecate end of 2023).
IVariableMngvariableMng () const
 Variable manager associated with the variable.
String name () const
 Variable name.
virtual eDataType dataType () const
 Variable type (Real, Integer, ...).
virtual void print (std::ostream &o) const
 Prints the variable value.
virtual IModulemodule () const
 Module associated with the variable (or nullptr, if none).
virtual int property () const
 Variable properties.
virtual int referenceProperty () const
 Reference properties (internal).
virtual void setProperty (int property)
 Sets the property property.
virtual void unsetProperty (int property)
 Unsets the property property.
virtual void registerVariable ()
 Registers the variable (internal).
virtual void unregisterVariable ()
 Unregisters the variable (internal).
IVariablevariable () const
 Associated variable.
virtual Integer checkIfSync (int max_print=0)
 Checks if the variable is synchronized.
virtual Integer checkIfSameOnAllReplica (int max_print=0)
 Checks if the variable has the same values on all replicas.
virtual Integer arraySize () const
 If the variable is an array, returns its dimension, otherwise returns 0.
void setUsed (bool v)
bool isUsed () const
virtual void internalSetUsed (bool)
const StringassignmentStackTrace () const
 Call stack at the time of assigning this instance.
void addTag (const String &tagname, const String &tagvalue)
 Adds the tag tagname with the value tagvalue.
void removeTag (const String &tagname)
 Removes the tag tagname.
bool hasTag (const String &tagname) const
 true if the variable has the tag tagname
String tagValue (const String &tagname) const
 Value of the tag tagname. The string is null if the tag does not exist.
void update ()
 Recalculates the variable if necessary.
void setUpToDate ()
 Indicates that the variable has just been updated.
Int64 modifiedTime ()
 Time when the variable was updated.
void addDependCurrentTime (const VariableRef &var)
 Adds var to the dependency list at the current time.
void addDependCurrentTime (const VariableRef &var, const TraceInfo &tinfo)
 Adds var to the dependency list at the current time with trace info tinfo.
void addDependPreviousTime (const VariableRef &var)
 Adds var to the dependency list at the previous time.
void addDependPreviousTime (const VariableRef &var, const TraceInfo &tinfo)
 Adds var to the dependency list at the previous time with trace info tinfo.
void removeDepend (const VariableRef &var)
 Removes var from the dependency list.
template<typename ClassType>
void setComputeFunction (ClassType *instance, void(ClassType::*func)())
 Sets the variable's recalculation function.
template<typename ClassType>
void setComputeFunction (ClassType *instance, void(ClassType::*func)(), const TraceInfo &tinfo)
 Sets the variable's recalculation function.
VariableRefpreviousReference ()
 Previous reference (or null) to variable().
VariableRefnextReference ()
 Next reference (or null) to variable().
void setPreviousReference (VariableRef *v)
void setNextReference (VariableRef *v)

Protected Member Functions

void updateFromInternal () override
 Updates from the internal part.
Protected Member Functions inherited from Arcane::MeshVariableRef
 MeshVariableRef (const MeshVariableRef &rhs)
 MeshVariableRef (IVariable *var)
void operator= (const MeshVariableRef &rhs)
void _internalInit (IVariable *)
Protected Member Functions inherited from Arcane::VariableRef
 VariableRef (const VariableBuildInfo &vbi)
 Constructs a reference to a variable with the infos vbi.
 VariableRef (const VariableRef &from)
 Copy constructor.
 VariableRef (IVariable *var)
 Constructs a reference to a variable var.
VariableRefoperator= (const VariableRef &from)
 Copy assignment operator.
 VariableRef ()
 Default constructor.
void _setComputeFunction (IVariableComputeFunction *v)
void _internalInit (IVariable *)
 Internal initialization of the variable.
IVariable_variable () const
 Referenced variable.
void _executeUpdateFunctors ()
void _internalAssignVariable (const VariableRef &var)

Protected Attributes

impl::MeshMDVariableRefWrapperT< ItemType, DataType > m_underlying_var
MDSpanType m_mdspan
bool m_has_trace = false

Additional Inherited Members

static void setTraceCreation (bool v)
static bool hasTraceCreation ()

Detailed Description

template<typename ItemType, typename DataType, typename Extents>
class Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >

Base class managing a multi-dimensional variable on a mesh entity.

Warning
API is under definition. Do not use outside of Arcane.

Definition at line 96 of file MeshMDVariableRef.h.

Member Typedef Documentation

◆ FullExtentsType

template<typename ItemType, typename DataType, typename Extents>
using Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::FullExtentsType = Extents

Definition at line 104 of file MeshMDVariableRef.h.

◆ ItemLocalIdType

template<typename ItemType, typename DataType, typename Extents>
using Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::ItemLocalIdType = typename ItemType::LocalIdType

Definition at line 103 of file MeshMDVariableRef.h.

◆ MDSpanType

template<typename ItemType, typename DataType, typename Extents>
using Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::MDSpanType = MDSpan<DataType, Extents, RightLayout>

Definition at line 102 of file MeshMDVariableRef.h.

◆ UnderlyingVariableType

template<typename ItemType, typename DataType, typename Extents>
using Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::UnderlyingVariableType = MeshVariableArrayRefT<ItemType, DataType>

Definition at line 101 of file MeshMDVariableRef.h.

Constructor & Destructor Documentation

◆ MeshMDVariableRefBaseT()

template<typename ItemType, typename DataType, typename Extents>
Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::MeshMDVariableRefBaseT ( const VariableBuildInfo & b)
inlineexplicit

Definition at line 108 of file MeshMDVariableRef.h.

Member Function Documentation

◆ fullShape()

template<typename ItemType, typename DataType, typename Extents>
ArrayShape Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::fullShape ( ) const
inline

Full shape (static + dynamic) of the variable.

Definition at line 119 of file MeshMDVariableRef.h.

◆ underlyingVariable()

template<typename ItemType, typename DataType, typename Extents>
UnderlyingVariableType & Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::underlyingVariable ( )
inline

Associated underlying variable.

Definition at line 116 of file MeshMDVariableRef.h.

◆ updateFromInternal()

template<typename ItemType, typename DataType, typename Extents>
void Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::updateFromInternal ( )
inlineoverrideprotectedvirtual

Updates from the internal part.

Reimplemented from Arcane::VariableRef.

Reimplemented in Arcane::MeshVectorMDVariableRefT< ItemType, DataType, Size, Extents >.

Definition at line 123 of file MeshMDVariableRef.h.

Member Data Documentation

◆ m_mdspan

template<typename ItemType, typename DataType, typename Extents>
MDSpanType Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::m_mdspan
protected

Definition at line 137 of file MeshMDVariableRef.h.

◆ m_underlying_var

template<typename ItemType, typename DataType, typename Extents>
impl::MeshMDVariableRefWrapperT<ItemType, DataType> Arcane::MeshMDVariableRefBaseT< ItemType, DataType, Extents >::m_underlying_var
protected

Definition at line 136 of file MeshMDVariableRef.h.


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