Skip to content

Commit 56df1ea

Browse files
[arcane,materials] Positionne le nombre de matériau du milieu dans '_computeInfosForEnvCells()'.
Cela évite de recalculer cette valeur une deuxième fois pour rien.
1 parent 1b70d5d commit 56df1ea

File tree

3 files changed

+6
-9
lines changed

3 files changed

+6
-9
lines changed

arcane/src/arcane/materials/AllEnvData.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,10 +248,11 @@ _computeInfosForEnvCells()
248248
ref_ii._setSuperAndGlobalItem(&all_env_items_internal[lid], ItemLocalId(lid));
249249
ref_ii._setNbSubItem(nb_mat);
250250
ref_ii._setVariableIndex(mvi);
251+
ref_ii._setComponent(env_id);
251252
}
252253
}
253254
for( MeshEnvironment* env : true_environments ){
254-
env->computeMaterialIndexes(*m_component_connectivity_list, &m_item_internal_data);
255+
env->computeMaterialIndexes(&m_item_internal_data);
255256
}
256257
}
257258

arcane/src/arcane/materials/MeshEnvironment.cc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ computeNbMatPerCell()
187187
* computeNbMatPerCell() et computeItemListForMaterials() ont été appelées
188188
*/
189189
void MeshEnvironment::
190-
computeMaterialIndexes(const ConstituentConnectivityList& connectivity_list, ComponentItemInternalData* item_internal_data)
190+
computeMaterialIndexes(ComponentItemInternalData* item_internal_data)
191191
{
192192
info(4) << "Compute (V2) indexes for environment name=" << name();
193193

@@ -200,27 +200,23 @@ computeMaterialIndexes(const ConstituentConnectivityList& connectivity_list, Com
200200
//TODO: regarder comment supprimer ce tableau cells_env qui n'est normalement pas utile
201201
// car on doit pouvoir directement utiliser les m_items_internal
202202
UniqueArray<ComponentItemInternal*> cells_env(max_local_id);
203-
//Int32ArrayView nb_mat_per_cell = m_nb_mat_per_cell.asArray();
204203

205204
{
206205
Integer cell_index = 0;
207-
const Int16 env_id = this->componentId();
208206
Int32ConstArrayView local_ids = variableIndexer()->localIds();
209207
ConstArrayView<ComponentItemInternal*> items_internal = itemsInternalView();
210208

211209
for( Integer z=0, nb=local_ids.size(); z<nb; ++z ){
212210
Int32 lid = local_ids[z];
213-
Int32 nb_mat = connectivity_list.cellNbMaterial(CellLocalId(lid), env_id);
214211
ComponentItemInternal* env_item = items_internal[z];
212+
Int32 nb_mat = env_item->nbSubItem();
215213
cells_index[lid] = cell_index;
216214
cells_pos[lid] = cell_index;
217215
//info(4) << "XZ=" << z << " LID=" << lid << " POS=" << cell_index;
218-
env_item->_setNbSubItem(nb_mat);
219-
env_item->_setComponent(env_id);
220216
if (nb_mat!=0){
221217
env_item->_setFirstSubItem(&mat_items_internal[cell_index]);
222-
cells_env[lid] = env_item;
223218
}
219+
cells_env[lid] = env_item;
224220
cell_index += nb_mat;
225221
}
226222
}

arcane/src/arcane/materials/internal/MeshEnvironment.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class MeshEnvironment
158158
void addToTotalNbCellMat(Int32 v) { m_total_nb_cell_mat += v; }
159159

160160
void resizeItemsInternal(Integer nb_item);
161-
void computeMaterialIndexes(const ConstituentConnectivityList& connectivity_list, ComponentItemInternalData* item_internal_data);
161+
void computeMaterialIndexes(ComponentItemInternalData* item_internal_data);
162162
void notifyLocalIdsChanged(Int32ConstArrayView old_to_new_ids);
163163
MeshComponentData* componentData() { return &m_data; }
164164

0 commit comments

Comments
 (0)