Skip to content

Commit

Permalink
Merge pull request #795 from arcaneframework/dev/gg-cleanup-materials5
Browse files Browse the repository at this point in the history
Move method 'IMeshComponent::variableIndexer()' in private API.
  • Loading branch information
grospelliergilles authored Jul 11, 2023
2 parents 5fcf979 + 3db348c commit 654b9c5
Show file tree
Hide file tree
Showing 16 changed files with 75 additions and 64 deletions.
17 changes: 8 additions & 9 deletions arcane/ceapart/src/arcane/tests/MeshMaterialSimdUnitTest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/

#include "arcane/utils/ArcanePrecomp.h"
#include "arcane/utils/ScopedPtr.h"
#include "arcane/utils/PlatformUtils.h"
#include "arcane/utils/OStringStream.h"
Expand All @@ -21,11 +20,11 @@
#include "arcane/utils/Simd.h"
#include "arcane/utils/SimdOperation.h"

#include "arcane/BasicUnitTest.h"
#include "arcane/ServiceBuilder.h"
#include "arcane/FactoryService.h"

#include "arcane/VariableView.h"
#include "arcane/core/BasicUnitTest.h"
#include "arcane/core/ServiceBuilder.h"
#include "arcane/core/FactoryService.h"
#include "arcane/core/VariableView.h"
#include "arcane/core/materials/internal/IMeshComponentInternal.h"

#include "arcane/materials/ComponentSimd.h"
#include "arcane/materials/IMeshMaterialMng.h"
Expand Down Expand Up @@ -494,7 +493,7 @@ executeTest()
nb_z /= 100;
Integer nb_z2 = nb_z / 5;

Int32 env_idx = m_env1->variableIndexer()->index() + 1;
Int32 env_idx = m_env1->_internalApi()->variableIndexer()->index() + 1;
info() << "Using vectorisation name=" << SimdInfo::name()
<< " vector_size=" << SimdReal::Length << " index_size=" << SimdInfo::Int32IndexSize;
info() << "Compiler=\"" << getCompilerInfo() << "\""
Expand Down Expand Up @@ -747,7 +746,7 @@ _executeTest3(Integer nb_z)
}
{
Int32ConstArrayView indexes = m_env1_partial_value_index;
Int32 env_idx = m_env1->variableIndexer()->index() + 1;
Int32 env_idx = m_env1->_internalApi()->variableIndexer()->index() + 1;
PRAGMA_IVDEP
for( Integer i=0, n=indexes.size(); i<n; ++i ){
Int32 xi = indexes[i];
Expand Down Expand Up @@ -780,7 +779,7 @@ _executeTest5(Integer nb_z)
};

for( Integer z=0, iz=nb_z; z<iz; ++z ){
Int32 env_idx = m_env1->variableIndexer()->index() + 1;
Int32 env_idx = m_env1->_internalApi()->variableIndexer()->index() + 1;
func(0,m_env1_pure_value_index);
func(env_idx,m_env1_partial_value_index);
}
Expand Down
1 change: 1 addition & 0 deletions arcane/src/arcane/core/materials/IMeshComponent.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ class ARCANE_CORE_EXPORT IMeshComponent
* \internal
* Indexeur pour accéder aux variables partielles.
*/
ARCANE_DEPRECATED_REASON("Y2023: This method is internal to Arcane")
virtual MeshMaterialVariableIndexer* variableIndexer() const =0;

/*!
Expand Down
15 changes: 8 additions & 7 deletions arcane/src/arcane/core/materials/MatItemEnumerator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ namespace Arcane::Materials
MatCellEnumerator MatCellEnumerator::
create(IMeshMaterial* mat)
{
return MatCellEnumerator(mat->_internalApi()->itemsInternalView(),
mat->variableIndexer()->matvarIndexes(),mat);
IMeshComponentInternal* mci = mat->_internalApi();
return MatCellEnumerator(mci->itemsInternalView(),
mci->variableIndexer()->matvarIndexes(),mat);
}

/*---------------------------------------------------------------------------*/
Expand Down Expand Up @@ -66,8 +67,8 @@ create(MatCellVectorView v)
EnvCellEnumerator EnvCellEnumerator::
create(IMeshEnvironment* env)
{
return EnvCellEnumerator(env->_internalApi()->itemsInternalView(),
env->variableIndexer()->matvarIndexes(),env);
IMeshComponentInternal* mci = env->_internalApi();
return EnvCellEnumerator(mci->itemsInternalView(),mci->variableIndexer()->matvarIndexes(),env);
}

/*---------------------------------------------------------------------------*/
Expand Down Expand Up @@ -172,10 +173,10 @@ create(const CellGroup& v)
ComponentCellEnumerator ComponentCellEnumerator::
create(IMeshComponent* component)
{
MeshMaterialVariableIndexer* vi = component->variableIndexer();
IMeshComponentInternal* mci = component->_internalApi();
MeshMaterialVariableIndexer* vi = mci->variableIndexer();

return ComponentCellEnumerator(component->_internalApi()->itemsInternalView(),
vi->matvarIndexes(),component);
return ComponentCellEnumerator(mci->itemsInternalView(),vi->matvarIndexes(),component);
}

/*---------------------------------------------------------------------------*/
Expand Down
7 changes: 4 additions & 3 deletions arcane/src/arcane/core/materials/MeshComponentPartData.cc
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,15 @@
#include "arcane/utils/ValueChecker.h"
#include "arcane/utils/PlatformUtils.h"

#include "arcane/IItemFamily.h"
#include "arcane/ItemPrinter.h"
#include "arcane/core/IItemFamily.h"
#include "arcane/core/ItemPrinter.h"

#include "arcane/core/materials/MeshMaterialVariableIndexer.h"
#include "arcane/core/materials/IMeshComponent.h"
#include "arcane/core/materials/MeshComponentPartData.h"
#include "arcane/core/materials/ComponentItemInternal.h"
#include "arcane/core/materials/ComponentPartItemVectorView.h"
#include "arcane/core/materials/internal/IMeshComponentInternal.h"

/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
Expand All @@ -37,7 +38,7 @@ MeshComponentPartData::
MeshComponentPartData(IMeshComponent* component)
: TraceAccessor(component->traceMng())
, m_component(component)
, m_impure_var_idx(component->variableIndexer()->index()+1)
, m_impure_var_idx(component->_internalApi()->variableIndexer()->index()+1)
{
// Utilise l'allocateur des données pour permettre d'accéder à ces valeurs
// sur les accélérateurs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ class ARCANE_CORE_EXPORT IMeshComponentInternal

public:

//! Indexeur pour accéder aux variables partielles.
virtual MeshMaterialVariableIndexer* variableIndexer() const =0;

//! Vue sur les mailles du composant.
virtual ConstArrayView<ComponentItemInternal*> itemsInternalView() const = 0;
};
Expand Down
4 changes: 2 additions & 2 deletions arcane/src/arcane/materials/AllEnvData.cc
Original file line number Diff line number Diff line change
Expand Up @@ -533,7 +533,7 @@ _checkMaterialPresence(IMeshMaterial* mat,Int32ConstArrayView ids,eOperation ope
// TODO: faut-il vérifier la validité des \a ids
//(ils sont compris entre 0 et max_loca_id-1) ?

MeshMaterialVariableIndexer* indexer = mat->variableIndexer();
MeshMaterialVariableIndexer* indexer = mat->_internalApi()->variableIndexer();
IItemFamily* item_family = mat->cells().itemFamily();
ItemInfoListView items_internal(item_family);
Integer max_local_id = item_family->maxLocalId();
Expand Down Expand Up @@ -601,7 +601,7 @@ _filterValidIds(IMeshMaterial* mat,Int32ConstArrayView ids,bool do_add,Int32Arra
// TODO: faut-il vérifier la validité des \a ids
//(ils sont compris entre 0 et max_local_id-1) ?

MeshMaterialVariableIndexer* indexer = mat->variableIndexer();
MeshMaterialVariableIndexer* indexer = mat->_internalApi()->variableIndexer();
IItemFamily* item_family = mat->cells().itemFamily();
Integer max_local_id = item_family->maxLocalId();
UniqueArray<bool> presence_flags(max_local_id,false);
Expand Down
18 changes: 9 additions & 9 deletions arcane/src/arcane/materials/ItemMaterialVariableBaseT.H
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,20 @@
#include "arcane/utils/FatalErrorException.h"
#include "arcane/utils/MemoryUtils.h"

#include "arcane/Observer.h"
#include "arcane/IMesh.h"
#include "arcane/IVariable.h"
#include "arcane/IItemFamily.h"
#include "arcane/VariableInfo.h"
#include "arcane/core/Observer.h"
#include "arcane/core/IMesh.h"
#include "arcane/core/IVariable.h"
#include "arcane/core/IItemFamily.h"
#include "arcane/core/VariableInfo.h"
#include "arcane/core/internal/IDataInternal.h"

#include "arcane/materials/MeshMaterialVariableRef.h"
#include "arcane/materials/ComponentItemListBuilder.h"

#include "arcane/core/materials/MaterialVariableBuildInfo.h"
#include "arcane/core/materials/IMeshMaterialMng.h"
#include "arcane/core/materials/IMeshMaterialVariableFactoryMng.h"

#include "arcane/materials/MeshMaterialVariableRef.h"
#include "arcane/materials/ComponentItemListBuilder.h"
#include "arcane/materials/internal/MeshMaterialVariablePrivate.h"

/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/

Expand Down
8 changes: 4 additions & 4 deletions arcane/src/arcane/materials/MeshMaterialMng.cc
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ createEnvironment(const MeshEnvironmentBuildInfo& infos)
MeshMaterialVariableIndexer* var_idx = 0;
bool duplicate_unique_env_cell = false;
if (nb_mat==1 && !duplicate_unique_env_cell){
var_idx = me->materials()[0]->variableIndexer();
var_idx = me->materials()[0]->_internalApi()->variableIndexer();
}
else{
var_idx = new MeshMaterialVariableIndexer(traceMng(),me->name());
Expand Down Expand Up @@ -812,7 +812,7 @@ dumpInfos(std::ostream& o)
for( Integer i=0; i<nb_env; ++i ){
IMeshEnvironment* me = m_environments[i];
ConstArrayView<IMeshMaterial*> env_materials = me->materials();
MeshMaterialVariableIndexer* env_var_idx = me->variableIndexer();
MeshMaterialVariableIndexer* env_var_idx = me->_internalApi()->variableIndexer();
Integer nb_env_mat = env_materials.size();
o << "-- Milieu name=" << me->name()
<< " nb_mat=" << nb_env_mat
Expand All @@ -822,7 +822,7 @@ dumpInfos(std::ostream& o)
<< '\n';
for( Integer j=0; j<nb_env_mat; ++j ){
IMeshMaterial* mm = env_materials[j];
MeshMaterialVariableIndexer* idx = mm->variableIndexer();
MeshMaterialVariableIndexer* idx = mm->_internalApi()->variableIndexer();
o << "-- Materiau\n";
o << "-- name = " << mm->name() << "\n";
o << "-- nb_cell = " << mm->cells().size() << "\n";
Expand Down Expand Up @@ -884,7 +884,7 @@ dumpInfos2(std::ostream& o)
o << '\n';
for( Integer j=0; j<nb_env_mat; ++j ){
IMeshMaterial* mm = env_materials[j];
MeshMaterialVariableIndexer* idx = mm->variableIndexer();
MeshMaterialVariableIndexer* idx = mm->_internalApi()->variableIndexer();
o << "-- Mat name=" << mm->name()
<< " nb_cell=" << mm->cells().size()
<< " var_idx=" << idx->index()
Expand Down
7 changes: 4 additions & 3 deletions arcane/src/arcane/materials/MeshMaterialModifierImpl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@

#include "arcane/core/IItemFamily.h"
#include "arcane/core/IData.h"
#include "arcane/core/materials/internal/IMeshComponentInternal.h"

#include "arcane/materials/MeshMaterialModifierImpl.h"
#include "arcane/materials/IMeshMaterial.h"
#include "arcane/materials/IMeshMaterialVariable.h"
#include "arcane/materials/MeshMaterialBackup.h"

#include "arcane/materials/internal/MeshMaterialMng.h"
#include "arcane/materials/internal/AllEnvData.h"

Expand Down Expand Up @@ -239,16 +239,17 @@ endUpdate()
for( Integer i=0; i<nb_operation; ++i ){
Operation* op = m_operations.values()[i];
IMeshMaterial* mat = op->m_mat;
IMeshComponentInternal* mci = mat->_internalApi();
if (op->m_is_add){
linfo() << "MODIFIER_ADD_CELLS_TO_MATERIAL: mat=" << mat->name()
<< " mat_index=" << mat->variableIndexer()->index()
<< " mat_index=" << mci->variableIndexer()->index()
<< " op_index=" << i
<< " nb_item=" << op->m_ids.size()
<< " ids=" << op->m_ids;
}
if (!op->m_is_add){
linfo() << "MODIFIER_REMOVE_CELLS_TO_MATERIAL: mat=" << mat->name()
<< " mat_index=" << mat->variableIndexer()->index()
<< " mat_index=" << mci->variableIndexer()->index()
<< " op_index=" << i
<< " nb_item=" << op->m_ids.size()
<< " ids=" << op->m_ids;
Expand Down
4 changes: 2 additions & 2 deletions arcane/src/arcane/materials/MeshMaterialVariable.cc
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
#include "arcane/materials/MeshMaterialVariableDependInfo.h"
#include "arcane/materials/IMeshMaterialVariableComputeFunction.h"
#include "arcane/materials/IMeshMaterialVariableSynchronizer.h"

#include "arcane/materials/internal/MeshMaterialVariablePrivate.h"

#include "arcane/core/Variable.h"
Expand All @@ -44,6 +43,7 @@
#include "arcane/core/IObserver.h"
#include "arcane/core/IParallelMng.h"
#include "arcane/core/Parallel.h"
#include "arcane/core/materials/internal/IMeshComponentInternal.h"

/*---------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------*/
Expand Down Expand Up @@ -237,7 +237,7 @@ name() const
IVariable* MeshMaterialVariable::
materialVariable(IMeshMaterial* mat)
{
Int32 index = mat->variableIndexer()->index() + 1;
Int32 index = mat->_internalApi()->variableIndexer()->index() + 1;
return m_p->m_refs[index]->variable();
}

Expand Down
36 changes: 15 additions & 21 deletions arcane/src/arcane/materials/MeshMaterialVariableScalar.cc
Original file line number Diff line number Diff line change
Expand Up @@ -27,37 +27,31 @@
#include "arcane/materials/IMeshMaterial.h"
#include "arcane/materials/MatItemEnumerator.h"
#include "arcane/materials/MeshMaterialVariableSynchronizerList.h"

#include "arcane/materials/internal/MeshMaterialVariablePrivate.h"

#include "arcane/materials/ItemMaterialVariableBaseT.H"
#include "arcane/materials/internal/MeshMaterialVariablePrivate.h"

#include "arcane/core/IItemFamily.h"
#include "arcane/core/IMesh.h"
#include "arcane/core/IParallelMng.h"
#include "arcane/core/ISubDomain.h"
#include "arcane/core/IApplication.h"
#include "arcane/core/IDataFactoryMng.h"

#include "arcane/core/IParallelExchanger.h"
#include "arcane/core/ISerializer.h"
#include "arcane/core/ISerializeMessage.h"

#include "arcane/VariableInfo.h"
#include "arcane/VariableRefArray.h"
#include "arcane/MeshVariable.h"
#include "arcane/VariableArray.h"
#include "arcane/ItemPrinter.h"
#include "arcane/IVariableSynchronizer.h"
#include "arcane/core/materials/internal/IMeshComponentInternal.h"
#include "arcane/core/VariableInfo.h"
#include "arcane/core/VariableRefArray.h"
#include "arcane/core/MeshVariable.h"
#include "arcane/core/VariableArray.h"
#include "arcane/core/ItemPrinter.h"
#include "arcane/core/IVariableSynchronizer.h"
#include "arcane/core/internal/IDataInternal.h"
#include "arcane/Timer.h"

#include "arcane/parallel/IStat.h"

#include "arcane/datatype/DataTypeTraits.h"
#include "arcane/datatype/DataStorageBuildInfo.h"

#include "arcane/VariableDataTypeTraits.h"
#include "arcane/core/Timer.h"
#include "arcane/core/parallel/IStat.h"
#include "arcane/core/datatype/DataTypeTraits.h"
#include "arcane/core/datatype/DataStorageBuildInfo.h"
#include "arcane/core/VariableDataTypeTraits.h"

#include <vector>

Expand Down Expand Up @@ -195,7 +189,7 @@ ItemMaterialVariableScalar<DataType>::
fillFromArray(IMeshMaterial* mat,ConstArrayView<DataType> values,
Int32ConstArrayView indexes)
{
ConstArrayView<MatVarIndex> mat_indexes = mat->variableIndexer()->matvarIndexes();
ConstArrayView<MatVarIndex> mat_indexes = mat->_internalApi()->variableIndexer()->matvarIndexes();
Integer nb_index = indexes.size();
for( Integer i=0; i<nb_index; ++i ){
MatVarIndex mvi = mat_indexes[indexes[i]];
Expand Down Expand Up @@ -248,7 +242,7 @@ template<typename DataType> void
ItemMaterialVariableScalar<DataType>::
fillToArray(IMeshMaterial* mat,ArrayView<DataType> values,Int32ConstArrayView indexes)
{
ConstArrayView<MatVarIndex> mat_indexes = mat->variableIndexer()->matvarIndexes();
ConstArrayView<MatVarIndex> mat_indexes = mat->_internalApi()->variableIndexer()->matvarIndexes();
Integer nb_index = indexes.size();
for( Integer i=0; i<nb_index; ++i ){
MatVarIndex mvi = mat_indexes[indexes[i]];
Expand Down
4 changes: 4 additions & 0 deletions arcane/src/arcane/materials/internal/MeshEnvironment.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ class MeshEnvironment
public:
InternalApi(MeshEnvironment* env) : m_environment(env){}
public:
MeshMaterialVariableIndexer* variableIndexer() const override\
{
return m_environment->variableIndexer();
}
ConstArrayView<ComponentItemInternal*> itemsInternalView() const override
{
return m_environment->itemsInternalView();
Expand Down
4 changes: 4 additions & 0 deletions arcane/src/arcane/materials/internal/MeshMaterial.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ class MeshMaterial
public:
InternalApi(MeshMaterial* mat) : m_material(mat){}
public:
MeshMaterialVariableIndexer* variableIndexer() const override\
{
return m_material->variableIndexer();
}
ConstArrayView<ComponentItemInternal*> itemsInternalView() const override
{
return m_material->itemsInternalView();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "arcane/core/FactoryService.h"
#include "arcane/core/VariableView.h"
#include "arcane/core/IItemFamily.h"
#include "arcane/core/materials/internal/IMeshComponentInternal.h"

#include "arcane/materials/ComponentSimd.h"
#include "arcane/materials/IMeshMaterialMng.h"
Expand Down Expand Up @@ -294,7 +295,7 @@ executeTest()
nb_z /= 100;
Integer nb_z2 = nb_z / 5;

Int32 env_idx = m_env1->variableIndexer()->index() + 1;
Int32 env_idx = m_env1->_internalApi()->variableIndexer()->index() + 1;
info() << "ENV_IDX=" << env_idx
<< " nb_pure=" << m_env1_pure_value_index.size()
<< " nb_partial=" << m_env1_partial_value_index.size()
Expand Down
Loading

0 comments on commit 654b9c5

Please sign in to comment.