Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
amdis
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Container Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Aland, Sebastian
amdis
Commits
edc55c09
Commit
edc55c09
authored
Nov 05, 2012
by
Thomas Witkowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed some small ARH issues, add a small tool to generate arh meta files.
parent
f94e0e7c
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
55 additions
and
54 deletions
+55
-54
AMDiS/src/io/ArhReader.cc
AMDiS/src/io/ArhReader.cc
+33
-17
AMDiS/src/io/ArhReader.h
AMDiS/src/io/ArhReader.h
+15
-33
AMDiS/src/io/ArhWriter.cc
AMDiS/src/io/ArhWriter.cc
+5
-2
AMDiS/src/io/ArhWriter.h
AMDiS/src/io/ArhWriter.h
+1
-1
AMDiS/src/io/FileWriter.cc
AMDiS/src/io/FileWriter.cc
+1
-1
No files found.
AMDiS/src/io/ArhReader.cc
View file @
edc55c09
...
...
@@ -31,16 +31,13 @@ namespace AMDiS {
bool
writeParallel
,
int
nProcs
)
{
size_t
nValueVectors
=
getNumValueVectors
(
filename
);
vector
<
DOFVector
<
double
>*>
vecs
(
0
);
if
(
nValueVectors
>
0
)
if
(
vec
0
)
vecs
.
push_back
(
vec0
);
if
(
nValueVectors
>
1
)
if
(
vec
1
)
vecs
.
push_back
(
vec1
);
if
(
nValueVectors
>
2
)
if
(
vec
2
)
vecs
.
push_back
(
vec2
);
for
(
size_t
i
=
3
;
i
<
nValueVectors
;
i
++
)
vecs
.
push_back
(
NULL
);
ArhReader
::
read
(
filename
,
mesh
,
vecs
,
writeParallel
,
nProcs
);
}
...
...
@@ -141,7 +138,7 @@ namespace AMDiS {
if
(
macroInMesh
.
count
(
elIndex
)
==
1
)
elementStructure
.
fitMeshToStructure
(
mesh
,
refManager
,
false
,
elIndex
);
if
(
nValueVectors
>
0
)
{
if
(
nValueVectors
>
0
)
{
uint32_t
nValuesPerVector
=
0
;
file
.
read
(
reinterpret_cast
<
char
*>
(
&
nValuesPerVector
),
4
);
...
...
@@ -189,14 +186,33 @@ namespace AMDiS {
}
int
ArhReader
::
getNumValueVectors
(
string
filename
)
{
ifstream
file
;
file
.
open
(
filename
.
c_str
(),
ios
::
in
|
ios
::
binary
);
string
typeId
=
""
;
uint32_t
nMacroElements
=
0
;
uint32_t
nValueVectors
=
0
;
file
.
read
(
const_cast
<
char
*>
(
typeId
.
data
()),
4
);
file
.
read
(
reinterpret_cast
<
char
*>
(
&
nMacroElements
),
4
);
file
.
read
(
reinterpret_cast
<
char
*>
(
&
nValueVectors
),
4
);
file
.
close
();
return
nValueVectors
;
}
//the following three functions are identical to read/readfile except that they read from
//a block of memory instead of from a file
void
ArhReader
::
readFromMemoryBlock
(
vector
<
char
>
&
data
,
Mesh
*
mesh
,
DOFVector
<
double
>*
vec0
,
DOFVector
<
double
>*
vec1
,
DOFVector
<
double
>*
vec2
,
bool
writeParallel
,
int
nProcs
)
DOFVector
<
double
>*
vec0
,
DOFVector
<
double
>*
vec1
,
DOFVector
<
double
>*
vec2
,
bool
writeParallel
,
int
nProcs
)
{
uint32_t
nValueVectors
;
memcpy
(
reinterpret_cast
<
char
*>
(
&
nValueVectors
),
&
data
[
8
],
4
);
...
...
@@ -215,9 +231,9 @@ namespace AMDiS {
void
ArhReader
::
readFromMemoryBlock
(
vector
<
char
>
&
data
,
Mesh
*
mesh
,
vector
<
DOFVector
<
double
>*>
vecs
,
bool
writeParallel
,
int
nProcs
)
vector
<
DOFVector
<
double
>*>
vecs
,
bool
writeParallel
,
int
nProcs
)
{
FUNCNAME
(
"ArhReader::readFromMemoryBlock()"
);
...
...
@@ -230,8 +246,8 @@ namespace AMDiS {
void
ArhReader
::
readBlock
(
vector
<
char
>
&
data
,
Mesh
*
mesh
,
vector
<
DOFVector
<
double
>*>
vecs
)
Mesh
*
mesh
,
vector
<
DOFVector
<
double
>*>
vecs
)
{
FUNCNAME
(
"ArhReader::readBlock()"
);
...
...
AMDiS/src/io/ArhReader.h
View file @
edc55c09
...
...
@@ -53,44 +53,26 @@ namespace AMDiS {
int
nProcs
=
-
1
);
static
void
readFromMemoryBlock
(
vector
<
char
>
&
data
,
Mesh
*
mesh
,
DOFVector
<
double
>*
vec0
=
NULL
,
DOFVector
<
double
>*
vec1
=
NULL
,
DOFVector
<
double
>*
vec2
=
NULL
,
DOFVector
<
double
>*
vec0
=
NULL
,
DOFVector
<
double
>*
vec1
=
NULL
,
DOFVector
<
double
>*
vec2
=
NULL
,
#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
bool
writeParallel
=
true
,
bool
writeParallel
=
true
,
#else
bool
writeParallel
=
false
,
bool
writeParallel
=
false
,
#endif
int
nProcs
=
-
1
);
int
nProcs
=
-
1
);
static
void
readFromMemoryBlock
(
vector
<
char
>
&
data
,
Mesh
*
mesh
,
vector
<
DOFVector
<
double
>*>
vecs
,
vector
<
DOFVector
<
double
>*>
vecs
,
#ifdef HAVE_PARALLEL_DOMAIN_AMDIS
bool
writeParallel
=
true
,
bool
writeParallel
=
true
,
#else
bool
writeParallel
=
false
,
bool
writeParallel
=
false
,
#endif
int
nProcs
=
-
1
);
static
int
getNumValueVectors
(
string
filename
)
{
ifstream
file
;
file
.
open
(
filename
.
c_str
(),
ios
::
in
|
ios
::
binary
);
string
typeId
=
""
;
uint32_t
nMacroElements
=
0
;
uint32_t
nValueVectors
=
0
;
//uint32_t nAllValues = 0;
file
.
read
(
const_cast
<
char
*>
(
typeId
.
data
()),
4
);
file
.
read
(
reinterpret_cast
<
char
*>
(
&
nMacroElements
),
4
);
file
.
read
(
reinterpret_cast
<
char
*>
(
&
nValueVectors
),
4
);
//file.read(reinterpret_cast<char*>(&nAllValues), 4);
file
.
close
();
return
nValueVectors
;
}
int
nProcs
=
-
1
);
static
int
getNumValueVectors
(
string
filename
);
private:
...
...
@@ -102,8 +84,8 @@ namespace AMDiS {
vector
<
double
>&
values
,
DOFVector
<
double
>*
vec
);
static
void
readBlock
(
vector
<
char
>
&
data
,
Mesh
*
mesh
,
vector
<
DOFVector
<
double
>*>
vecs
);
Mesh
*
mesh
,
vector
<
DOFVector
<
double
>*>
vecs
);
};
}
...
...
AMDiS/src/io/ArhWriter.cc
View file @
edc55c09
...
...
@@ -127,8 +127,11 @@ namespace AMDiS {
void
ArhWriter
::
writeMacroElement
(
ofstream
&
file
,
MeshStructure
&
code
,
vector
<
vector
<
double
>
>&
values
,
int32_t
elIndex
)
u
int32_t
elIndex
)
{
FUNCNAME
(
"ArhWriter::writeMacroElement()"
);
MSG
(
"WRITE INDEX: %d
\n
"
,
elIndex
);
file
.
write
(
reinterpret_cast
<
char
*>
(
&
elIndex
),
4
);
uint32_t
nStructureCodes
=
code
.
getCode
().
size
();
...
...
@@ -140,7 +143,7 @@ namespace AMDiS {
file
.
write
(
reinterpret_cast
<
char
*>
(
&
(
const_cast
<
vector
<
uint64_t
>&>
(
code
.
getCode
())[
0
])),
8
*
nStructureCodes
);
if
(
values
.
size
()
>
0
)
{
if
(
values
.
size
()
>
0
)
{
uint32_t
nValuesPerVector
=
values
[
0
].
size
();
file
.
write
(
reinterpret_cast
<
char
*>
(
&
nValuesPerVector
),
4
);
...
...
AMDiS/src/io/ArhWriter.h
View file @
edc55c09
...
...
@@ -75,7 +75,7 @@ namespace AMDiS {
static
void
writeMacroElement
(
std
::
ofstream
&
file
,
MeshStructure
&
code
,
std
::
vector
<
std
::
vector
<
double
>
>&
values
,
int32_t
elIndex
);
u
int32_t
elIndex
);
};
}
...
...
AMDiS/src/io/FileWriter.cc
View file @
edc55c09
...
...
@@ -191,7 +191,7 @@ namespace AMDiS {
}
if
(
writeArhFormat
)
ArhWriter
::
write
(
fn
+
".arh"
,
feSpace
->
getMesh
(),
solutionVecs
);
ArhWriter
::
write
(
paraFilename
+
".arh"
,
feSpace
->
getMesh
(),
solutionVecs
);
#ifdef HAVE_PNG
if
(
writePngFormat
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment