Skip to content

Commit fa3f3b0

Browse files
authored
Merge pull request eric2003#158 from eric2003/hexin
Hexin
2 parents 7128b51 + 5532d99 commit fa3f3b0

10 files changed

Lines changed: 243 additions & 275 deletions

File tree

‎codes/global/include/FieldAlloc.h‎

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ License
2121
\*---------------------------------------------------------------------------*/
2222
#pragma once
2323
#include "HXDefine.h"
24+
#include <memory>
2425
#include <string>
2526

2627

@@ -37,18 +38,12 @@ class NameValuePair
3738

3839
class FieldNamePair
3940
{
40-
public:
41-
FieldNamePair();
42-
~FieldNamePair();
4341
public:
4442
static void SetField( int solverType, NameValuePair & valuePair );
4543
};
4644

4745
class FieldAlloc
4846
{
49-
public:
50-
FieldAlloc();
51-
~FieldAlloc();
5247
public:
5348
static void AllocateAllFields( int solverType, const std::string & basicString );
5449
static void InitField( int solverType, const std::string & basicString );
@@ -65,17 +60,14 @@ class FieldAlloc
6560
class ReadInterfaceVar
6661
{
6762
public:
68-
ReadInterfaceVar();
69-
~ReadInterfaceVar();
70-
public:
71-
static void AddFieldName( int solverType, int fieldType, StringField & nameList );
63+
static void AddFieldName(
64+
int solverType,
65+
int fieldType,
66+
StringField & nameList );
7267
};
7368

7469
class ParaNameDim
7570
{
76-
public:
77-
ParaNameDim();
78-
~ParaNameDim();
7971
public:
8072
StringField nameList;
8173
IntField dimList;
@@ -87,9 +79,9 @@ class ParaNameDimData
8779
ParaNameDimData();
8880
~ParaNameDimData();
8981
public:
90-
ParaNameDim * comPara;
91-
ParaNameDim * strPara;
92-
ParaNameDim * unsPara;
82+
std::unique_ptr<ParaNameDim> comPara;
83+
std::unique_ptr<ParaNameDim> strPara;
84+
std::unique_ptr<ParaNameDim> unsPara;
9385
public:
9486
ParaNameDim * GetParaNameDim( const std::string & typeName );
9587
};
@@ -100,7 +92,7 @@ class ReadSuperPara
10092
ReadSuperPara();
10193
~ReadSuperPara();
10294
public:
103-
ParaNameDimData * paraNameDimData;
95+
std::unique_ptr<ParaNameDimData> paraNameDimData;
10496
int solverType;
10597
public:
10698
void Register( const std::string & fileName, int index );
@@ -114,6 +106,7 @@ class ReadSuperPara
114106

115107

116108
class TextFileParser;
109+
117110
class BoolIO
118111
{
119112
public:
@@ -122,18 +115,20 @@ class BoolIO
122115
public:
123116
StringField boolNameList;
124117
BoolField boolValueList;
125-
int valueFlag;
126-
TextFileParser * textFileParser;
127118
NameValuePair nameValuePair;
128-
ParaNameDimData * paraNameDimData;
129119
public:
130120
void Add( const std::string & name, bool value );
131-
void ReadBool( TextFileParser * textFileParser );
132-
void ReadSuperBool( TextFileParser * textFileParser );
121+
void ReadBool( TextFileParser & textFileParser );
122+
void ReadSuperBool( TextFileParser & textFileParser );
133123
bool CalcVarValue( const std::string & varName );
134-
void Read();
135-
void ReadFile( const std::string & fileName, int valueFlag = 0 );
136-
124+
void Read(
125+
TextFileParser & textFileParser,
126+
int valueFlag,
127+
ParaNameDimData * paraNameDimData = nullptr );
128+
void ReadFile(
129+
const std::string & fileName,
130+
int valueFlag = 0,
131+
ParaNameDimData * paraNameDimData = nullptr );
137132
};
138133

139134
bool CalcBoolExp( bool var1, const std::string & opName, bool var2 );

‎codes/global/include/FieldImp.h‎

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ License
2323
#include "NamespaceMacros.h"
2424
#include "HXArray.h"
2525
#include <map>
26+
#include <memory>
2627

2728
BeginNameSpace( ONEFLOW )
2829

@@ -72,9 +73,9 @@ class FieldPropertyData
7273
FieldPropertyData();
7374
~FieldPropertyData();
7475
public:
75-
FieldProperty * bcField;
76-
FieldProperty * faceField;
77-
FieldProperty * innerField;
76+
std::unique_ptr< FieldProperty > bcField;
77+
std::unique_ptr< FieldProperty > faceField;
78+
std::unique_ptr< FieldProperty > innerField;
7879
};
7980

8081
class FieldManager;
@@ -87,12 +88,12 @@ class FieldManager
8788
FieldManager();
8889
~FieldManager();
8990
public:
90-
IFieldProperty * iFieldProperty;
91-
UsdPara * usdPara;
91+
std::unique_ptr< IFieldProperty > iFieldProperty;
92+
std::unique_ptr< UsdPara > usdPara;
9293

93-
FieldPropertyData * commManager;
94-
FieldPropertyData * strManager;
95-
FieldPropertyData * unsManager;
94+
std::unique_ptr< FieldPropertyData > commManager;
95+
std::unique_ptr< FieldPropertyData > strManager;
96+
std::unique_ptr< FieldPropertyData > unsManager;
9697
public:
9798
void AddFaceField( const std::string & fieldName, int nEqu );
9899
void AddInnerField( const std::string & fieldName, int nEqu );
@@ -113,15 +114,12 @@ class FieldManager
113114
class FieldFactory
114115
{
115116
public:
116-
FieldFactory();
117-
~FieldFactory();
118-
public:
119-
static std::map< int, FieldManager * > * data;
120-
public:
121-
static void Init();
122117
static void AddFieldManager( int solverType );
123118
static FieldManager * GetFieldManager( int solverType );
124119
static void FreeFieldManager();
120+
121+
private:
122+
static std::map< int, std::unique_ptr< FieldManager > > data;
125123
};
126124

127125
class UnsGrid;

0 commit comments

Comments
 (0)