13#include "arcane/lima/internal/LimaUtils.h"
15#include "arcane/utils/CheckedConvert.h"
16#include "arcane/utils/ITraceMng.h"
18#include "arcane/core/IItemFamily.h"
19#include "arcane/core/IMeshReader.h"
20#include "arcane/core/ItemGroup.h"
22#include "arcane/lima/internal/LimaMalippT.h"
26#ifdef ARCANE_LIMA_HAS_MLI
27#include <Lima/malipp.h>
29#ifdef ARCANE_LIMA_HAS_MLI2
30#include <Lima/malipp2.h>
46 if (!local_ids.
empty())
47 std::sort(std::begin(local_ids), std::end(local_ids));
51 for (
Integer i = 1; i < nb_item; ++i)
52 if (local_ids[i] == local_ids[i - 1]) {
55 if (nb_duplicated != 0) {
56 tm->
warning() <<
"Duplicated items in group name=" << name
57 <<
" nb_duplicated=" << nb_duplicated;
58 auto xbegin = std::begin(local_ids);
59 auto xend = std::end(local_ids);
60 Integer new_size = CheckedConvert::toInteger(std::unique(xbegin, xend) - xbegin);
61 tm->
info() <<
"NEW_SIZE=" << new_size <<
" old=" << nb_item;
62 local_ids = local_ids.
subView(0, new_size);
73 const String& filename,
Real length_multiplier)
75#ifdef ARCANE_LIMA_HAS_MLI
80 ARCANE_UNUSED(timer_mng);
82 ARCANE_UNUSED(filename);
83 ARCANE_UNUSED(length_multiplier);
92LimaUtils::_directLimaPartitionMalipp2(ITimerMng* timer_mng, IPrimaryMesh* mesh,
93 const String& filename, Real length_multiplier)
95#ifdef ARCANE_LIMA_HAS_MLI2
96 LimaMalippReader<Lima::MaliPPReader2> reader(mesh->traceMng());
97 auto rt = reader.readMeshFromFile(timer_mng, mesh, filename, length_multiplier);
100 ARCANE_UNUSED(timer_mng);
102 ARCANE_UNUSED(filename);
103 ARCANE_UNUSED(length_multiplier);
constexpr ArrayView< T > subView(Integer abegin, Integer asize) noexcept
Sub-view starting from element abegin and containing asize elements.
constexpr Integer size() const noexcept
Returns the size of the array.
constexpr bool empty() const noexcept
Returns true if the array is empty (zero dimension).
Interface of an entity family.
virtual ItemGroup createGroup(const String &name, Int32ConstArrayView local_ids, bool do_override=false)=0
Creates an entity group named name containing the entities local_ids.
virtual ITraceMng * traceMng() const =0
Associated trace manager.
eReturnType
Types of return codes for a read or write operation.
@ RTIrrelevant
Not relevant to the operation. This means that the file format does not match this reader or that the...
Interface of a timer manager.
virtual TraceMessage warning()=0
Stream for a warning message.
virtual TraceMessage info()=0
Stream for an information message.
Mesh file reader via the LIMA library.
static void createGroup(IItemFamily *family, const String &name, Int32ArrayView local_ids)
Creates a group of entities.
Unicode character string.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ArrayView< Int32 > Int32ArrayView
C equivalent of a 1D array of 32-bit integers.
double Real
Type representing a real number.