Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
N
NP_TMcode
Manage
Activity
Members
Plan
Wiki
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Analyze
Contributor analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Giacomo Mulas
NP_TMcode
Commits
91a573af
Commit
91a573af
authored
1 year ago
by
Giovanni La Mura
Browse files
Options
Downloads
Patches
Plain Diff
Define the Swap2 class
parent
07097559
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/include/tfrfme.h
+141
-1
141 additions, 1 deletion
src/include/tfrfme.h
src/libnptm/tfrfme.cpp
+353
-1
353 additions, 1 deletion
src/libnptm/tfrfme.cpp
with
494 additions
and
2 deletions
src/include/tfrfme.h
+
141
−
1
View file @
91a573af
/*! \file tfrfme.h
*
* \brief Representation of the trapping c
onfigur
ation objects.
* \brief Representation of the trapping c
alcul
ation objects.
*/
#ifndef INCLUDE_TFRFME_H_
...
...
@@ -97,6 +97,146 @@ public:
/*! \brief Class to represent the second group of trapping swap data.
*/
class
Swap2
{
protected:
//! Number of vector coordinates
int
nkv
;
//! QUESTION: definition?
double
*
vkv
;
//! QUESTION: definition?
double
**
vkzm
;
//! QUESTION: definition?
double
apfafa
;
//! QUESTION: definition?
double
pmf
;
//! QUESTION: definition?
double
spd
;
//! QUESTION: definition?
double
rir
;
//! QUESTION: definition?
double
ftcn
;
//! QUESTION: definition?
double
fshmx
;
//! QUESTION: definition?
double
vxyzmx
;
//! Cartesian displacement. QUESTION: correct?
double
delxyz
;
//! QUESTION: definition?
double
vknmx
;
//! QUESTION: definition?
double
delk
;
//! QUESTION: definition?
double
delks
;
//! NLMMT = LM * (LM + 2) * 2
int
nlmmt
;
//! Number of radial vector coordinates. QUESTION: correct?
int
nrvc
;
/*! \brief Load a Swap2 instance from a HDF5 binary file.
*
* \param file_name: `string` Name of the file to be loaded.
* \return instance: `Swap2 *` Pointer to a new Swap2 instance.
*/
static
Swap2
*
from_hdf5
(
std
::
string
file_name
);
/*! \brief Load a Swap2 instance from a legacy binary file.
*
* \param file_name: `string` Name of the file to be loaded.
* \return instance: `Swap2 *` Pointer to a new Swap2 instance.
*/
static
Swap2
*
from_legacy
(
std
::
string
file_name
);
/*! \brief Save a Swap2 instance to a HDF5 binary file.
*
* \param file_name: `string` Name of the file to be written.
*/
void
write_hdf5
(
std
::
string
file_name
);
/*! \brief Save a Swap2 instance to a legacy binary file.
*
* \param file_name: `string` Name of the file to be written.
*/
void
write_legacy
(
std
::
string
file_name
);
public:
/*! \brief Swap2 instance constructor.
*
* \param _nkv: `int` Number of vector coordinates. QUESTION: correct?
*/
Swap2
(
int
_nkv
);
/*! \brief Swap2 instance destroyer.
*/
~
Swap2
();
/*! \brief Load a Swap2 instance from binary file.
*
* \param file_name: `string` Name of the file.
* \param mode: `string` Format of the file (can be either "HDF5"
* or "LGEACY". Default is "LEGACY").
* \return instance: `Swap2 *` Pointer to a newly created Swap2 instance.
*/
static
Swap2
*
from_binary
(
std
::
string
file_name
,
std
::
string
mode
=
"LEGACY"
);
/*! \brief Get an element from the VKZM matrix.
*
* \param row: `int` Index of the desired element row.
* \param col: `int` Index of the desired element column.
* \return value: `double` The value of the requested element.
*/
double
get_matrix_element
(
int
row
,
int
col
)
{
return
vkzm
[
row
][
col
];
}
/*! \brief Get a parameter by its name.
*
* \param param_name: `string` Name of the parameter.
* \return value: `double` The value of the requested parameter.
*/
double
get_param
(
std
::
string
param_name
);
/*! \brief Get an element from the VKV vector.
*
* \param index: `int` Index of the desired element.
* \return value: `double` The value of the requested element.
*/
double
get_vector_element
(
int
index
)
{
return
vkv
[
index
];
}
/*! \brief Set an element in the VKZM matrix.
*
* \param row: `int` Index of the desired element row.
* \param col: `int` Index of the desired element column.
* \param value: `double` The value of the element to be stored.
*/
void
set_matrix_element
(
int
row
,
int
col
,
double
value
)
{
vkzm
[
row
][
col
]
=
value
;
}
/*! \brief Set a parameter by its name and value.
*
* \param param_name: `string` Name of the parameter.
* \param value: `double` The value of the parameter.
*/
void
set_param
(
std
::
string
param_name
,
double
value
);
/*! \brief Get an element from the VKV vector.
*
* \param index: `int` Index of the desired element.
* \param value: `double` The value of element to be stored.
*/
void
set_vector_element
(
int
index
,
double
value
)
{
vkv
[
index
]
=
value
;
}
/*! \brief Write a Swap2 instance to binary file.
*
* \param file_name: `string` Name of the file.
* \param mode: `string` Format of the file (can be either "HDF5"
* or "LGEACY". Default is "LEGACY").
*/
void
write_binary
(
std
::
string
file_name
,
std
::
string
mode
=
"LEGACY"
);
/*! \brief Test whether two instances of Swap2 are equal.
*
* \param other: `Swap1 &` Reference to the instance to be compared
* with.
* \return result: `bool` True, if the two instances are equal,
* false otherwise.
*/
bool
operator
==
(
Swap2
&
other
);
};
/*! \brief Class to represent the trapping configuration.
...
...
This diff is collapsed.
Click to expand it.
src/libnptm/tfrfme.cpp
+
353
−
1
View file @
91a573af
/*! \file tfrfme.cpp
*
* \brief Implementation of the trapping c
onfigur
ation objects.
* \brief Implementation of the trapping c
alcul
ation objects.
*/
#include
<complex>
...
...
@@ -27,6 +27,7 @@
using
namespace
std
;
// >>> START OF Swap1 CLASS IMPLEMENTATION <<<
Swap1
::
Swap1
(
int
lm
)
{
nlmmt
=
2
*
lm
*
(
lm
+
2
);
wk
=
new
complex
<
double
>
[
nlmmt
]();
...
...
@@ -173,7 +174,357 @@ bool Swap1::operator ==(Swap1 &other) {
}
return
true
;
}
// >>> END OF Swap1 CLASS IMPLEMENTATION <<<
// >>> START OF Swap2 CLASS IMPLEMENTATION <<<
Swap2
::
Swap2
(
int
_nkv
)
{
nkv
=
_nkv
;
vkv
=
new
double
[
nkv
]();
vkzm
=
new
double
*
[
nkv
];
for
(
int
vi
=
0
;
vi
<
nkv
;
vi
++
)
vkzm
[
vi
]
=
new
double
[
nkv
]();
}
Swap2
::~
Swap2
()
{
delete
[]
vkv
;
for
(
int
vi
=
nkv
-
1
;
vi
>
-
1
;
vi
--
)
delete
[]
vkzm
[
vi
];
delete
[]
vkzm
;
}
Swap2
*
Swap2
::
from_binary
(
string
file_name
,
string
mode
)
{
Swap2
*
instance
=
NULL
;
if
(
mode
.
compare
(
"LEGACY"
)
==
0
)
{
instance
=
from_legacy
(
file_name
);
}
else
if
(
mode
.
compare
(
"HDF5"
)
==
0
)
{
instance
=
from_hdf5
(
file_name
);
}
else
{
string
message
=
"Unknown format mode:
\"
"
+
mode
+
"
\"
"
;
throw
UnrecognizedFormatException
(
message
);
}
return
instance
;
}
Swap2
*
Swap2
::
from_hdf5
(
string
file_name
)
{
Swap2
*
instance
=
NULL
;
unsigned
int
flags
=
H5F_ACC_RDONLY
;
HDFFile
*
hdf_file
=
new
HDFFile
(
file_name
,
flags
);
herr_t
status
=
hdf_file
->
get_status
();
string
str_type
;
int
_nkv
,
_nlmmt
,
_nrvc
;
double
value
;
if
(
status
==
0
)
{
status
=
hdf_file
->
read
(
"NKV"
,
"INT32"
,
&
_nkv
);
instance
=
new
Swap2
(
_nkv
);
str_type
=
"FLOAT64_("
+
to_string
(
_nkv
)
+
")"
;
status
=
hdf_file
->
read
(
"VKV"
,
str_type
,
instance
->
vkv
);
str_type
=
"FLOAT64_("
+
to_string
(
_nkv
)
+
","
+
to_string
(
_nkv
)
+
")"
;
status
=
hdf_file
->
read
(
"VKZM"
,
str_type
,
instance
->
vkzm
);
status
=
hdf_file
->
read
(
"APFAFA"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"apfafa"
,
value
);
status
=
hdf_file
->
read
(
"PMF"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"pmf"
,
value
);
status
=
hdf_file
->
read
(
"SPD"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"spd"
,
value
);
status
=
hdf_file
->
read
(
"RIR"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"rir"
,
value
);
status
=
hdf_file
->
read
(
"FTCN"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"ftcn"
,
value
);
status
=
hdf_file
->
read
(
"FSHMX"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"fshmx"
,
value
);
status
=
hdf_file
->
read
(
"VXYZMX"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"vxyzmx"
,
value
);
status
=
hdf_file
->
read
(
"DELXYZ"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"delxyz"
,
value
);
status
=
hdf_file
->
read
(
"VKNMX"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"vknmx"
,
value
);
status
=
hdf_file
->
read
(
"DELK"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"delk"
,
value
);
status
=
hdf_file
->
read
(
"DELKS"
,
"FLOAT64"
,
&
value
);
instance
->
set_param
(
"delks"
,
value
);
status
=
hdf_file
->
read
(
"NLMMT"
,
"INT32"
,
&
_nlmmt
);
instance
->
set_param
(
"nlmmt"
,
1.0
*
_nlmmt
);
status
=
hdf_file
->
read
(
"NRVC"
,
"INT32"
,
&
_nrvc
);
instance
->
set_param
(
"nrvc"
,
1.0
*
_nrvc
);
status
=
hdf_file
->
close
();
delete
hdf_file
;
}
return
instance
;
}
Swap2
*
Swap2
::
from_legacy
(
string
file_name
)
{
fstream
input
;
Swap2
*
instance
=
NULL
;
int
_nkv
,
_nlmmt
,
_nrvc
;
double
value
;
input
.
open
(
file_name
.
c_str
(),
ios
::
in
|
ios
::
binary
);
if
(
input
.
is_open
())
{
input
.
read
(
reinterpret_cast
<
char
*>
(
&
_nkv
),
sizeof
(
int
));
instance
=
new
Swap2
(
_nkv
);
for
(
int
vj
=
0
;
vj
<
_nkv
;
vj
++
)
{
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_vector_element
(
vj
,
value
);
}
for
(
int
mi
=
0
;
mi
<
_nkv
;
,
i
++
)
{
for
(
int
mj
=
0
;
mj
<
_nkv
;
mj
++
)
{
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_matrix_element
(
vi
,
vj
,
value
);
}
}
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"apfafa"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"pmf"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"spd"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"rir"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"ftcn"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"fshmx"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"vxyzmx"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"delxyz"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"vknmx"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"delk"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
value
),
sizeof
(
double
));
instance
->
set_param
(
"delks"
,
value
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
_nlmmt
),
sizeof
(
int
));
instance
->
set_param
(
"nlmmt"
,
1.0
*
_nlmmt
);
input
.
read
(
reinterpret_cast
<
char
*>
(
&
_nrvc
),
sizeof
(
int
));
instance
->
set_param
(
"nrvc"
,
1.0
*
_nrvc
);
input
.
close
();
}
else
{
printf
(
"ERROR: could not open input file
\"
%s
\"\n
"
,
file_name
.
c_str
());
}
return
instance
;
}
double
Swap2
::
get_param
(
string
param_name
)
{
double
value
;
if
(
param_name
.
compare
(
"nkv"
)
==
0
)
value
=
1.0
*
nkv
;
else
if
(
param_name
.
compare
(
"apfafa"
)
==
0
)
value
=
apfafa
;
else
if
(
param_name
.
compare
(
"pmf"
)
==
0
)
value
=
pmf
;
else
if
(
param_name
.
compare
(
"spd"
)
==
0
)
value
=
spd
;
else
if
(
param_name
.
compare
(
"rir"
)
==
0
)
value
=
rir
;
else
if
(
param_name
.
compare
(
"ftcn"
)
==
0
)
value
=
ftcn
;
else
if
(
param_name
.
compare
(
"fshmx"
)
==
0
)
value
=
fshmx
;
else
if
(
param_name
.
compare
(
"vxyzmx"
)
==
0
)
value
=
vxyzmx
;
else
if
(
param_name
.
compare
(
"delxyz"
)
==
0
)
value
=
delxyz
;
else
if
(
param_name
.
compare
(
"vknmx"
)
==
0
)
value
=
vknmx
;
else
if
(
param_name
.
compare
(
"delk"
)
==
0
)
value
=
delk
;
else
if
(
param_name
.
compare
(
"delks"
)
==
0
)
value
=
delks
;
else
if
(
param_name
.
compare
(
"nlmmt"
)
==
0
)
value
=
1.0
*
nlmmt
;
else
if
(
param_name
.
compare
(
"nrvc"
)
==
0
)
value
=
1.0
*
nrvc
;
else
{
string
message
=
"Unrecognized parameter name
\"
"
+
param_name
+
"
\"
"
;
throw
UnrecognizedParameterException
(
message
);
}
return
value
;
}
void
Swap2
::
set_param
(
string
param_name
,
double
value
)
{
if
(
param_name
.
compare
(
"nkv"
)
==
0
)
nkv
=
(
int
)
value
;
else
if
(
param_name
.
compare
(
"apfafa"
)
==
0
)
apfafa
=
value
;
else
if
(
param_name
.
compare
(
"pmf"
)
==
0
)
pmf
=
value
;
else
if
(
param_name
.
compare
(
"spd"
)
==
0
)
spd
=
value
;
else
if
(
param_name
.
compare
(
"rir"
)
==
0
)
rir
=
value
;
else
if
(
param_name
.
compare
(
"ftcn"
)
==
0
)
ftcn
=
value
;
else
if
(
param_name
.
compare
(
"fshmx"
)
==
0
)
fshmx
=
value
;
else
if
(
param_name
.
compare
(
"vxyzmx"
)
==
0
)
vxyzmx
=
value
;
else
if
(
param_name
.
compare
(
"delxyz"
)
==
0
)
delxyz
=
value
;
else
if
(
param_name
.
compare
(
"vknmx"
)
==
0
)
vknmx
=
value
;
else
if
(
param_name
.
compare
(
"delk"
)
==
0
)
delk
=
value
;
else
if
(
param_name
.
compare
(
"delks"
)
==
0
)
delks
=
value
;
else
if
(
param_name
.
compare
(
"nlmmt"
)
==
0
)
nlmmt
=
(
int
)
value
;
else
if
(
param_name
.
compare
(
"nrvc"
)
==
0
)
nrvc
=
(
int
)
value
;
else
{
string
message
=
"Unrecognized parameter name
\"
"
+
param_name
+
"
\"
"
;
throw
UnrecognizedParameterException
(
message
);
}
}
void
Swap2
::
write_binary
(
string
file_name
,
string
mode
)
{
if
(
mode
.
compare
(
"LEGACY"
)
==
0
)
{
write_legacy
(
file_name
);
}
else
if
(
mode
.
compare
(
"HDF5"
)
==
0
)
{
write_hdf5
(
file_name
);
}
else
{
string
message
=
"Unknown format mode:
\"
"
+
mode
+
"
\"
"
;
throw
UnrecognizedFormatException
(
message
);
}
}
void
Swap2
::
write_hdf5
(
string
file_name
)
{
List
<
string
>
rec_name_list
(
1
);
List
<
string
>
rec_type_list
(
1
);
List
<
void
*>
rec_ptr_list
(
1
);
herr_t
status
;
string
str_type
;
rec_name_list
.
set
(
0
,
"NKV"
);
rec_type_list
.
set
(
0
,
"INT32_(1)"
);
rec_ptr_list
.
set
(
0
,
&
nkv
);
rec_name_list
.
append
(
"VKV"
);
str_type
=
"FLOAT64_("
+
to_string
(
nkv
)
+
")"
;
rec_type_list
.
append
(
str_type
);
rec_ptr_list
.
append
(
vkv
);
rec_name_list
.
append
(
"VKZM"
);
str_type
=
"FLOAT64_("
+
to_string
(
nkv
)
+
","
+
to_string
(
nkv
)
+
")"
;
rec_type_list
.
append
(
str_type
);
rec_ptr_list
.
append
(
vkzm
);
rec_name_list
.
append
(
"APFAFA"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
apfafa
);
rec_name_list
.
append
(
"PMF"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
pmf
);
rec_name_list
.
append
(
"SPD"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
spd
);
rec_name_list
.
append
(
"RIR"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
rir
);
rec_name_list
.
append
(
"FTCN"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
ftcn
);
rec_name_list
.
append
(
"FSHMX"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
fshmx
);
rec_name_list
.
append
(
"VXYZMX"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
vxyzmx
);
rec_name_list
.
append
(
"delxyz"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
delxyz
);
rec_name_list
.
append
(
"VKNMX"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
vknmx
);
rec_name_list
.
append
(
"DELK"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
delk
);
rec_name_list
.
append
(
"DELKS"
);
rec_type_list
.
append
(
"FLOAT64_(1)"
);
rec_ptr_list
.
append
(
&
delks
);
rec_name_list
.
append
(
"NLMMT"
);
rec_type_list
.
append
(
"INT32_(1)"
);
rec_ptr_list
.
append
(
&
nlmmt
);
rec_name_list
.
append
(
"NRVC"
);
rec_type_list
.
append
(
"INT32_(1)"
);
rec_ptr_list
.
append
(
&
nrvc
);
string
*
rec_names
=
rec_name_list
.
to_array
();
string
*
rec_types
=
rec_type_list
.
to_array
();
void
**
rec_pointers
=
rec_ptr_list
.
to_array
();
const
int
rec_num
=
rec_name_list
.
length
();
FileSchema
schema
(
rec_num
,
rec_types
,
rec_names
);
HDFFile
*
hdf_file
=
HDFFile
::
from_schema
(
schema
,
file_name
,
H5F_ACC_TRUNC
);
for
(
int
ri
=
0
;
ri
<
rec_num
;
ri
++
)
status
=
hdf_file
->
write
(
rec_names
[
ri
],
rec_types
[
ri
],
rec_pointers
[
ri
]);
status
=
hdf_file
->
close
();
delete
[]
rec_names
;
delete
[]
rec_types
;
delete
[]
rec_pointers
;
delete
hdf_file
;
}
void
Swap2
::
write_legacy
(
string
file_name
)
{
fstream
output
;
double
value
output
.
open
(
file_name
.
c_str
(),
ios
::
out
|
ios
::
binary
);
if
(
output
.
is_open
())
{
output
.
write
(
reinterpret_cast
<
char
*>
(
&
nkv
),
sizeof
(
int
));
for
(
int
j
=
0
;
j
<
nkv
;
j
++
){
value
=
vkv
[
j
];
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
value
),
sizeof
(
double
));
}
for
(
int
mi
=
0
;
mi
<
nkv
;
mi
++
)
{
for
(
int
mj
=
0
;
mj
<
nkv
;
mj
++
)
{
value
=
vkzm
[
mi
][
mj
];
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
value
),
sizeof
(
double
));
}
}
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
apfafa
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
pmf
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
spd
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
rir
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
ftcn
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
fshmx
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
vxyzmx
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
delxyz
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
vknmx
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
delk
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
delks
),
sizeof
(
double
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
nlmmt
),
sizeof
(
int
));
output
.
write
(
reinterpret_cast
<
const
char
*>
(
&
nrvc
),
sizeof
(
int
));
output
.
close
();
}
else
{
// Should never occur
printf
(
"ERROR: could not open output file
\"
%s
\"\n
"
,
file_name
.
c_str
());
}
}
bool
Swap2
::
operator
==
(
Swap2
&
other
)
{
if
(
nlmmt
!=
other
.
nlmmt
)
{
return
false
;
}
if
(
nrvc
!=
other
.
nrvc
)
{
return
false
;
}
if
(
nkv
!=
other
.
nkv
)
{
return
false
;
}
if
(
apfafa
!=
other
.
apfafa
)
{
return
false
;
}
if
(
pmf
!=
other
.
pmf
)
{
return
false
;
}
if
(
spd
!=
other
.
spd
)
{
return
false
;
}
if
(
rir
!=
other
.
rir
)
{
return
false
;
}
if
(
ftcn
!=
other
.
ftcn
)
{
return
false
;
}
if
(
fshmx
!=
other
.
fshmx
)
{
return
false
;
}
if
(
vxyzmx
!=
other
.
vxyzmx
)
{
return
false
;
}
if
(
delxyz
!=
other
.
delxyz
)
{
return
false
;
}
if
(
vknmx
!=
other
.
vknmx
)
{
return
false
;
}
if
(
delk
!=
other
.
delk
)
{
return
false
;
}
if
(
delks
!=
other
.
delks
)
{
return
false
;
}
for
(
int
vi
=
0
;
vi
<
nkv
;
vi
++
)
{
if
(
vkv
[
vi
]
!=
other
.
vkv
[
vi
])
{
return
false
;
}
}
for
(
int
mi
=
0
;
mi
<
nkv
;
mi
++
)
{
for
(
int
mj
=
0
;
mj
<
nkv
;
mj
++
)
{
if
(
vkzm
[
mi
][
mj
]
!=
other
.
vkzm
[
mi
][
mj
])
{
return
false
;
}
}
}
return
true
;
}
// >>> END OF Swap2 CLASS IMPLEMENTATION <<<
// >>> START OF TFRFME CLASS IMPLEMENTATION <<<
TFRFME
::
TFRFME
(
int
_lmode
,
int
_lm
,
int
_nkv
,
int
_nxv
,
int
_nyv
,
int
_nzv
)
{
lmode
=
_lmode
;
lm
=
_lm
;
...
...
@@ -611,3 +962,4 @@ bool TFRFME::operator ==(TFRFME &other) {
}
// wi loop
return
true
;
}
// >>> END OF TFRFME CLASS IMPLEMENTATION <<<
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment