Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
Arcane::Materials::ItemMaterialVariableScalar< DataType > Class Template Reference

Public Types

using BaseClass = ItemMaterialVariableBase<MaterialVariableScalarTraits<DataType>>
using Traits = MaterialVariableScalarTraits<DataType>
using ThatClass = ItemMaterialVariableScalar<DataType>
using ContainerViewType = typename Traits::ContainerViewType
using PrivatePartType = typename Traits::PrivatePartType
using ValueDataType = typename Traits::ValueDataType
using ContainerType = typename Traits::ContainerType
using VariableRefType = typename Traits::VariableRefType
Public Types inherited from Arcane::Materials::ItemMaterialVariableBase< MaterialVariableScalarTraits< DataType > >
using TraitsType
using ValueType
using DataType
using ThatClass
using SubViewType
using SubConstViewType
using SubInputViewType
using ContainerSpanType
using ContainerViewType
using ContainerConstViewType
using PrivatePartType
using ValueDataType
using ContainerType
using UniqueContainerType
using VariableRefType

Public Member Functions

ArrayView< DataType > * views ()
DataType operator[] (MatVarIndex mvi) const
ARCANE_MATERIALS_EXPORT void synchronize () override
 Synchronizes the variable.
ARCANE_MATERIALS_EXPORT void synchronize (MeshMaterialVariableSynchronizerList &sync_list) override
ARCANE_MATERIALS_EXPORT void dumpValues (std::ostream &ostr) override
 Dumps the variable values to the stream ostr.
ARCANE_MATERIALS_EXPORT void dumpValues (std::ostream &ostr, AllEnvCellVectorView view) override
 Dumps the variable values for the view view to the stream ostr.
ARCANE_MATERIALS_EXPORT void serialize (ISerializer *sbuffer, Int32ConstArrayView ids) override
 Serializes the variable for local ID entities ids.
ARCANE_MATERIALS_EXPORT void fillFromArray (IMeshMaterial *mat, ConstArrayView< DataType > values)
 Fills the variable values for a material from an array.
ARCANE_MATERIALS_EXPORT void fillFromArray (IMeshMaterial *mat, ConstArrayView< DataType > values, Int32ConstArrayView indexes)
 Fills the variable values for a material from an array.
ARCANE_MATERIALS_EXPORT void fillToArray (IMeshMaterial *mat, ArrayView< DataType > values)
 Fills an array from the variable values for a material.
ARCANE_MATERIALS_EXPORT void fillToArray (IMeshMaterial *mat, ArrayView< DataType > values, Int32ConstArrayView indexes)
 Fills an array from the variable values for a material.
ARCANE_MATERIALS_EXPORT void fillPartialValues (const DataType &value)
 Fills the partial values with the value value.
void setValue (MatVarIndex mvi, SubInputViewType v)
SubConstViewType value (MatVarIndex mvi) const
Public Member Functions inherited from Arcane::Materials::ItemMaterialVariableBase< MaterialVariableScalarTraits< DataType > >
ARCANE_MATERIALS_EXPORT ItemMaterialVariableBase (const MaterialVariableBuildInfo &v, PrivatePartType *global_var, VariableRef *global_var_ref, MatVarSpace mvs)
ARCANE_MATERIALS_EXPORT void syncReferences () override
 Synchronizes references.
ARCANE_MATERIALS_EXPORT IVariableglobalVariable () const override
 Associated global variable on the mesh.
ARCANE_MATERIALS_EXPORT void buildFromManager (bool is_continue) override
ARCANE_MATERIALS_EXPORT Ref< IData_internalCreateSaveDataRef (Integer nb_value) override
ARCANE_MATERIALS_EXPORT void _saveData (IMeshComponent *env, IData *data) override
ARCANE_MATERIALS_EXPORT void _restoreData (IMeshComponent *component, IData *data, Integer data_index, Int32ConstArrayView ids, bool allow_null_id) override
ARCANE_MATERIALS_EXPORT void _copyBetweenPartialAndGlobal (const CopyBetweenPartialAndGlobalArgs &args) override
ARCANE_MATERIALS_EXPORT void _initializeNewItemsWithZero (InitializeWithZeroArgs &args) override
ARCANE_MATERIALS_EXPORT void fillPartialValuesWithGlobalValues () override
 Fills partial values with the value of the associated global cell.
ARCANE_MATERIALS_EXPORT void fillPartialValuesWithSuperValues (Int32 level) override
 Fills partial values with the value of the super cell. If level equals LEVEL_MATERIAL, it copies material values with the middle one. If level equals LEVEL_ENVIRONMENT, it copies environment values with the global cell's. If level equals LEVEL_ALLENVIRONMENT, it fills all partial values with the global cell's value (this makes this method equivalent to fillGlobalValuesWithGlobalValues()).
void setValue (MatVarIndex mvi, SubInputViewType v)
void setFillValue (MatVarIndex mvi, const DataType &v)
SubConstViewType value (MatVarIndex mvi) const
Public Member Functions inherited from Arcane::Materials::MeshMaterialVariable
 MeshMaterialVariable (const MaterialVariableBuildInfo &v, MatVarSpace mvs)
String name () const override
 Name of the variable.
void addVariableRef (MeshMaterialVariableRef *var_ref) override
 Adds a reference to this variable.
void removeVariableRef (MeshMaterialVariableRef *var_ref) override
 Removes a reference to this variable.
MeshMaterialVariableReffirstReference () const override
IVariablematerialVariable (IMeshMaterial *mat) override
void setKeepOnChange (bool v) override
 Indicates whether the variable value should be kept after a change in the list of materials.
bool keepOnChange () const override
 Indicates whether the variable value should be kept after a change in the list of materials.
MatVarSpace space () const override
 Variable definition space (material+environment or environment only).
void update (IMeshMaterial *mat) override
 Recalculates the variable for material mat if necessary.
void setUpToDate (IMeshMaterial *mat) override
 Indicates that the variable has just been updated.
Int64 modifiedTime (IMeshMaterial *mat) override
 Time when the variable was updated.
void addDepend (IMeshMaterialVariable *var) override
 Adds var to the dependency list.
void addDepend (IMeshMaterialVariable *var, const TraceInfo &tinfo) override
 Adds var to the dependency list with trace info tinfo.
void addDepend (IVariable *var) override
 Adds var to the dependency list.
void addDepend (IVariable *var, const TraceInfo &tinfo) override
 Adds var to the dependency list with trace info tinfo.
void removeDepend (IMeshMaterialVariable *var) override
 Removes var from the dependency list.
void removeDepend (IVariable *var) override
 Removes var from the dependency list.
void setComputeFunction (IMeshMaterialVariableComputeFunction *v) override
 Sets the variable's recalculation function.
IMeshMaterialVariableComputeFunctioncomputeFunction () override
 Function used to update the variable.
void dependInfos (Array< VariableDependInfo > &infos, Array< MeshMaterialVariableDependInfo > &mat_infos) override
 Dependency information.
IMeshMaterialVariableInternal * _internalApi () override
void incrementReference ()
Public Member Functions inherited from Arcane::Materials::IMeshMaterialVariable

Protected Member Functions

ARCANE_MATERIALS_EXPORT ItemMaterialVariableScalar (const MaterialVariableBuildInfo &v, PrivatePartType *global_var, VariableRef *global_var_ref, MatVarSpace mvs)
ArrayView< ArrayView< DataType > > _containerView ()
Protected Member Functions inherited from Arcane::Materials::ItemMaterialVariableBase< MaterialVariableScalarTraits< DataType > >
void _syncFromGlobalVariable ()
PrivatePartType * _trueGlobalVariable ()
void _init (ArrayView< PrivatePartType * > vars)
ARCANE_MATERIALS_EXPORT void _fillPartialValuesWithSuperValues (MeshComponentList components)
ARCANE_MATERIALS_EXPORT void _syncReferences (bool check_resize) override
ARCANE_MATERIALS_EXPORT void _resizeForIndexer (ResizeVariableIndexerArgs &args) override
ARCANE_MATERIALS_EXPORT void _copyHostViewsToViews (RunQueue *queue)
void _setView (Int32 index)
 Positions the views from the container.
ITraceMng_traceMng () const
void _copyToBuffer (SmallSpan< const MatVarIndex > matvar_indexes, Span< std::byte > bytes, RunQueue *queue) const
void _copyFromBuffer (SmallSpan< const MatVarIndex > matvar_indexes, Span< const std::byte > bytes, RunQueue *queue)

Additional Inherited Members

static void _genericCopyTo (Span< const std::byte > input, SmallSpan< const Int32 > input_indexes, Span< std::byte > output, SmallSpan< const Int32 > output_indexes, const RunQueue &queue, Int32 data_type_size)
Protected Attributes inherited from Arcane::Materials::ItemMaterialVariableBase< MaterialVariableScalarTraits< DataType > >
PrivatePartType * m_global_variable
VariableRefm_global_variable_ref
UniqueArray< PrivatePartType * > m_vars
 Variables for different materials.
UniqueArray< ContainerViewType > m_device_views
 List of views visible only from the accelerator.
UniqueArray< ContainerViewType > m_host_views
 List of views visible only from the host.
MeshMaterialVariablePrivate * m_p = nullptr
UniqueArray< Span< std::byte > > m_views_as_bytes

Detailed Description

template<typename DataType>
class Arcane::Materials::ItemMaterialVariableScalar< DataType >

Definition at line 427 of file MeshMaterialVariable.h.

Member Typedef Documentation

◆ BaseClass

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::BaseClass = ItemMaterialVariableBase<MaterialVariableScalarTraits<DataType>>

Definition at line 432 of file MeshMaterialVariable.h.

◆ ContainerType

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::ContainerType = typename Traits::ContainerType

Definition at line 439 of file MeshMaterialVariable.h.

◆ ContainerViewType

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::ContainerViewType = typename Traits::ContainerViewType

Definition at line 436 of file MeshMaterialVariable.h.

◆ PrivatePartType

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::PrivatePartType = typename Traits::PrivatePartType

Definition at line 437 of file MeshMaterialVariable.h.

◆ ThatClass

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::ThatClass = ItemMaterialVariableScalar<DataType>

Definition at line 434 of file MeshMaterialVariable.h.

◆ Traits

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::Traits = MaterialVariableScalarTraits<DataType>

Definition at line 433 of file MeshMaterialVariable.h.

◆ ValueDataType

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::ValueDataType = typename Traits::ValueDataType

Definition at line 438 of file MeshMaterialVariable.h.

◆ VariableRefType

template<typename DataType>
using Arcane::Materials::ItemMaterialVariableScalar< DataType >::VariableRefType = typename Traits::VariableRefType

Definition at line 440 of file MeshMaterialVariable.h.

Constructor & Destructor Documentation

◆ ItemMaterialVariableScalar()

template<typename DataType>
Arcane::Materials::ItemMaterialVariableScalar< DataType >::ItemMaterialVariableScalar ( const MaterialVariableBuildInfo & v,
PrivatePartType * global_var,
VariableRef * global_var_ref,
MatVarSpace mvs )
protected

Definition at line 135 of file MeshMaterialVariableScalar.cc.

Member Function Documentation

◆ _containerView()

template<typename DataType>
ArrayView< ArrayView< DataType > > Arcane::Materials::ItemMaterialVariableScalar< DataType >::_containerView ( )
inlineprotected

Definition at line 455 of file MeshMaterialVariable.h.

◆ dumpValues() [1/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::dumpValues ( std::ostream & ostr)
overridevirtual

◆ dumpValues() [2/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::dumpValues ( std::ostream & ostr,
AllEnvCellVectorView view )
overridevirtual

Dumps the variable values for the view view to the stream ostr.

Implements Arcane::Materials::IMeshMaterialVariable.

Definition at line 664 of file MeshMaterialVariableScalar.cc.

References ENUMERATE_ALLENVCELL, Arcane::Materials::ConstituentItem::globalCell(), and Arcane::Materials::MeshMaterialVariable::name().

◆ fillFromArray() [1/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::fillFromArray ( IMeshMaterial * mat,
ConstArrayView< DataType > values )

Fills the variable values for a material from an array.

This method performs the following operation:

Integer index=0;
ENUMERATE_MATCELL(imatcell,mat){
matvar[imatcell] = values[index];
++index;
}
#define ENUMERATE_MATCELL(iname, mat)
Macro to iterate over all MatCell cells of a material.
Int32 Integer
Type representing an integer.

Definition at line 162 of file MeshMaterialVariableScalar.cc.

References ENUMERATE_COMPONENTITEM.

◆ fillFromArray() [2/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::fillFromArray ( IMeshMaterial * mat,
ConstArrayView< DataType > values,
Int32ConstArrayView indexes )

Fills the variable values for a material from an array.

This method performs the following operation:

Integer index=0;
ENUMERATE_MATCELL(imatcell,mat){
matvar[imatcell] = values[index];
++index;
}

Definition at line 191 of file MeshMaterialVariableScalar.cc.

References Arcane::Materials::IMeshComponent::_internalApi(), and Arcane::ConstArrayView< T >::size().

◆ fillPartialValues()

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::fillPartialValues ( const DataType & value)

Fills the partial values with the value value.

Fills partial values with the value value.

Definition at line 265 of file MeshMaterialVariableScalar.cc.

◆ fillToArray() [1/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::fillToArray ( IMeshMaterial * mat,
ArrayView< DataType > values )

Fills an array from the variable values for a material.

This method performs the following operation:

Integer index=0;
ENUMERATE_MATCELL(imatcell,mat){
values[index] = matvar[imatcell];
++index;
}

Definition at line 219 of file MeshMaterialVariableScalar.cc.

References ENUMERATE_COMPONENTITEM.

◆ fillToArray() [2/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::fillToArray ( IMeshMaterial * mat,
ArrayView< DataType > values,
Int32ConstArrayView indexes )

Fills an array from the variable values for a material.

This method performs the following operation:

Integer index=0;
ENUMERATE_MATCELL(imatcell,mat){
values[index] = matvar[imatcell];
++index;
}

Definition at line 247 of file MeshMaterialVariableScalar.cc.

References Arcane::Materials::IMeshComponent::_internalApi(), and Arcane::ConstArrayView< T >::size().

◆ operator[]()

template<typename DataType>
DataType Arcane::Materials::ItemMaterialVariableScalar< DataType >::operator[] ( MatVarIndex mvi) const
inline

Definition at line 459 of file MeshMaterialVariable.h.

◆ serialize()

◆ setValue()

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableBase< MaterialVariableScalarTraits< DataType > >::setValue ( MatVarIndex mvi,
SubInputViewType v )
inline

Definition at line 335 of file MeshMaterialVariable.h.

◆ synchronize() [1/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::synchronize ( )
overridevirtual

Synchronizes the variable.

Synchronization is performed across all materials of the cell. It is essential that all ghost cells already have the correct number of materials.

Implements Arcane::Materials::IMeshMaterialVariable.

Definition at line 345 of file MeshMaterialVariableScalar.cc.

References Arcane::Parallel::IStat::add(), Arcane::Timer::lastActivationTime(), Arcane::IParallelMng::stat(), Arcane::IParallelMng::timerMng(), and Arcane::Timer::TimerReal.

◆ synchronize() [2/2]

template<typename DataType>
void Arcane::Materials::ItemMaterialVariableScalar< DataType >::synchronize ( MeshMaterialVariableSynchronizerList & sync_list)
overridevirtual

◆ value()

template<typename DataType>
SubConstViewType Arcane::Materials::ItemMaterialVariableBase< MaterialVariableScalarTraits< DataType > >::value ( MatVarIndex mvi) const
inline

Definition at line 345 of file MeshMaterialVariable.h.

◆ views()

template<typename DataType>
ArrayView< DataType > * Arcane::Materials::ItemMaterialVariableScalar< DataType >::views ( )
inline

Definition at line 451 of file MeshMaterialVariable.h.


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