Arcane  v4.1.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
VariableUtilsInternal.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* VariableUtilsInternal.cc (C) 2000-2024 */
9/* */
10/* Fonctions utilitaires diverses sur les variables internes à Arcane. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/core/internal/VariableUtilsInternal.h"
15
16#include "arcane/utils/ArrayView.h"
17#include "arcane/utils/MemoryView.h"
18
19#include "arcane/core/IVariable.h"
20#include "arcane/core/IData.h"
21#include "arcane/core/internal/IDataInternal.h"
22
23#include "arcane/accelerator/core/RunQueue.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
36{
37 IData* var_data = v->data();
38 auto* true_data = dynamic_cast<IArrayDataT<double>*>(var_data);
39 if (!true_data)
40 return true;
41 // TODO: Vérifier la taille
42 ArrayView<Real> var_values(true_data->view());
43 values.copy(var_values);
44 return false;
45}
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
55
56/*---------------------------------------------------------------------------*/
57/*---------------------------------------------------------------------------*/
58
61{
63 if (!num_data)
64 return true;
65 RunQueue queue;
66 impl::copyContiguousData(num_data, mem_view, queue);
67 return false;
68}
69
70/*---------------------------------------------------------------------------*/
71/*---------------------------------------------------------------------------*/
72
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82} // namespace Arcane::VariableUtils
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
File d'exécution pour un accélérateur.
Vue modifiable d'un tableau d'un type T.
void copy(const U &copy_array)
Recopie le tableau copy_array dans l'instance.
Vue constante d'un tableau de type T.
Vue constante sur une zone mémoire contigue contenant des éléments de taille fixe.
Interface d'une donnée tableau d'un type T.
Definition IData.h:292
Partie interne de IData.
virtual INumericDataInternal * numericData()
Interface générique pour les données numériques (nullptr si la donnée n'est pas numérique)
Interface d'une donnée.
Definition IData.h:33
virtual IDataInternal * _commonInternal()=0
Interface pour un 'IData' d'un type numérique.
Interface d'une variable.
Definition IVariable.h:39
virtual IData * data()=0
Données associées à la variable.
static bool setFromFloat64Array(IVariable *v, ConstArrayView< double > values)
Recopie dans la variable v les valeurs values.
static bool fillFloat64Array(IVariable *v, ArrayView< double > values)
Remplit values avec les valeurs de la variable.
static bool setFromMemoryBuffer(IVariable *v, ConstMemoryView values)
Recopie dans la variable v les valeurs values.
static IDataInternal * getDataInternal(IVariable *v)
Retourne l'API internal de IData associé à la variable v.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-