Version: 9.16.0
DriverMED_W_Field.h
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SMESH DriverMED : driver to write a field to 'med' file
24// Module : SMESH
25//
26#ifndef _INCLUDE_DriverMED_W_Field
27#define _INCLUDE_DriverMED_W_Field
28
29#include "SMESH_DriverMED.hxx"
30
31#include "Driver_SMESHDS_Mesh.h"
33#include "SMDS_ElemIterator.hxx"
34#include "MED_Common.hxx"
35
36#include <string>
37#include <vector>
38
40{
41 public:
42
44
45 void AddODOnVertices(bool toAdd) { _addODOnVertices = toAdd; }
46
47 bool Set(SMESHDS_Mesh * mesh,
48 const std::string & fieldName,
50 const int nbComps,
51 const bool isIntData);
52
53 void SetCompName(const int iComp, const char* name);
54
55 void SetDtIt(const int dt, const int it);
56
57 void AddValue( double val );
58 void AddValue( int val );
59
60 /*
61 * Return elements in the order they are written in MED file. Result can be NULL!
62 */
63 SMDS_ElemIteratorPtr GetOrderedElems();
64
65 /*
66 * Add one field to the file
67 */
68 Status Perform() override;
69
70 protected:
71
72 Status PerformInternal(MED::PWrapper& medFile);
73
74 private:
75
76 std::string _fieldName;
78 std::vector< std::string > _compNames;
79 std::vector< double > _dblValues;
80 std::vector< int > _intValues;
81 int _dt, _it;
83
84 std::vector< const SMDS_MeshElement* > _elemsByGeom[SMDSEntity_Last];
85 std::vector< std::pair< SMDSAbs_EntityType, int > > _nbElemsByGeom;
86};
87
88#include "MEDCouplingMemArray.hxx"
89
91{
92public:
93 DriverMED_W_Field_Mem(MEDCoupling::MCAuto<MEDCoupling::DataArrayByte> data):_data(data) { }
94 Status Perform() override;
95 MEDCoupling::MCAuto<MEDCoupling::DataArrayByte> getData() const { return _data; }
96private:
97 MEDCoupling::MCAuto<MEDCoupling::DataArrayByte> _data;
98};
99
100#endif
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
Definition: SMDSAbs_ElementType.hxx:34
@ SMDSEntity_Last
Definition: SMDSAbs_ElementType.hxx:106
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshElement * > > SMDS_ElemIteratorPtr
Definition: SMDS_ElemIterator.hxx:43
#define MESHDRIVERMED_EXPORT
Definition: SMESH_DriverMED.hxx:37
Definition: DriverMED_W_Field.h:91
DriverMED_W_Field_Mem(MEDCoupling::MCAuto< MEDCoupling::DataArrayByte > data)
Definition: DriverMED_W_Field.h:93
MEDCoupling::MCAuto< MEDCoupling::DataArrayByte > _data
Definition: DriverMED_W_Field.h:97
MEDCoupling::MCAuto< MEDCoupling::DataArrayByte > getData() const
Definition: DriverMED_W_Field.h:95
Definition: DriverMED_W_Field.h:40
std::vector< int > _intValues
Definition: DriverMED_W_Field.h:80
std::vector< std::string > _compNames
Definition: DriverMED_W_Field.h:78
void AddODOnVertices(bool toAdd)
Definition: DriverMED_W_Field.h:45
std::vector< std::pair< SMDSAbs_EntityType, int > > _nbElemsByGeom
Definition: DriverMED_W_Field.h:85
int _dt
Definition: DriverMED_W_Field.h:81
std::vector< double > _dblValues
Definition: DriverMED_W_Field.h:79
SMDSAbs_ElementType _elemType
Definition: DriverMED_W_Field.h:77
bool _addODOnVertices
Definition: DriverMED_W_Field.h:82
std::string _fieldName
Definition: DriverMED_W_Field.h:76
virtual Status Perform()=0
Definition: Driver_SMESHDS_Mesh.h:31
Specialization of SharedPtr for TWrapper.
Definition: MED_Wrapper.hxx:967
Definition: SMESHDS_Mesh.hxx:98