Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
gmsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Larry Price
gmsh
Commits
1c987999
Commit
1c987999
authored
17 years ago
by
Christophe Geuzaine
Browse files
Options
Downloads
Patches
Plain Diff
*** empty log message ***
parent
ec218d28
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
Post/PViewIO.cpp
+0
-301
0 additions, 301 deletions
Post/PViewIO.cpp
with
0 additions
and
301 deletions
Post/PViewIO.cpp
deleted
100644 → 0
+
0
−
301
View file @
ec218d28
// $Id: PViewIO.cpp,v 1.1 2007-08-21 19:14:53 geuzaine Exp $
//
// Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to <gmsh@geuz.org>.
//
// Contributor(s):
//
#include
"PView.h"
#include
"Message.h"
bool
PViewDataList
::
read
(
std
::
string
filename
)
{
FILE
*
fp
=
fopen
(
filename
.
c_str
(),
"rb"
);
if
(
!
fp
){
Msg
(
GERROR
,
"Unable to open file '%s'"
,
filename
.
c_str
());
return
false
;
}
char
str
[
256
],
name
[
256
];
int
format
,
size
,
swap
,
t2l
,
t3l
;
double
version
;
while
(
1
)
{
do
{
if
(
!
fgets
(
str
,
256
,
fp
)
||
feof
(
fp
))
break
;
}
while
(
str
[
0
]
!=
'$'
);
if
(
feof
(
fp
))
break
;
if
(
!
strncmp
(
&
str
[
1
],
"PostFormat"
,
10
))
{
if
(
!
fscanf
(
fp
,
"%lf %d %d
\n
"
,
&
version
,
&
format
,
&
size
)){
Msg
(
GERROR
,
"Read error"
);
return
false
;
}
if
(
version
<
1.0
)
{
Msg
(
GERROR
,
"Post-processing file too old (ver. %g < 1.0)"
,
version
);
return
false
;
}
if
(
size
==
sizeof
(
double
))
Msg
(
DEBUG
,
"Data is in double precision format (size==%d)"
,
size
);
else
{
Msg
(
GERROR
,
"Unknown data size (%d) in post-processing file"
,
size
);
return
false
;
}
if
(
format
==
0
)
format
=
LIST_FORMAT_ASCII
;
else
if
(
format
==
1
)
format
=
LIST_FORMAT_BINARY
;
else
{
Msg
(
GERROR
,
"Unknown format for view"
);
return
false
;
}
}
if
(
!
strncmp
(
&
str
[
1
],
"View"
,
4
))
{
if
(
version
<=
1.0
)
{
Msg
(
DEBUG
,
"Detected post-processing view format <= 1.0"
);
if
(
!
fscanf
(
fp
,
"%s %d %d %d %d %d %d %d %d %d %d %d %d %d
\n
"
,
name
,
&
NbTimeStep
,
&
NbSP
,
&
NbVP
,
&
NbTP
,
&
NbSL
,
&
NbVL
,
&
NbTL
,
&
NbST
,
&
NbVT
,
&
NbTT
,
&
NbSS
,
&
NbVS
,
&
NbTS
)){
Msg
(
GERROR
,
"Read error"
);
return
false
;
}
NbT2
=
t2l
=
NbT3
=
t3l
=
0
;
}
else
if
(
version
==
1.1
)
{
Msg
(
DEBUG
,
"Detected post-processing view format 1.1"
);
if
(
!
fscanf
(
fp
,
"%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
\n
"
,
name
,
&
NbTimeStep
,
&
NbSP
,
&
NbVP
,
&
NbTP
,
&
NbSL
,
&
NbVL
,
&
NbTL
,
&
NbST
,
&
NbVT
,
&
NbTT
,
&
NbSS
,
&
NbVS
,
&
NbTS
,
&
NbT2
,
&
t2l
,
&
NbT3
,
&
t3l
)){
Msg
(
GERROR
,
"Read error"
);
return
false
;
}
}
else
if
(
version
==
1.2
||
version
==
1.3
)
{
Msg
(
DEBUG
,
"Detected post-processing view format %g"
,
version
);
if
(
!
fscanf
(
fp
,
"%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d "
"%d %d %d %d %d %d %d %d %d %d %d %d %d
\n
"
,
name
,
&
NbTimeStep
,
&
NbSP
,
&
NbVP
,
&
NbTP
,
&
NbSL
,
&
NbVL
,
&
NbTL
,
&
NbST
,
&
NbVT
,
&
NbTT
,
&
NbSQ
,
&
NbVQ
,
&
NbTQ
,
&
NbSS
,
&
NbVS
,
&
NbTS
,
&
NbSH
,
&
NbVH
,
&
NbTH
,
&
NbSI
,
&
NbVI
,
&
NbTI
,
&
NbSY
,
&
NbVY
,
&
NbTY
,
&
NbT2
,
&
t2l
,
&
NbT3
,
&
t3l
)){
Msg
(
GERROR
,
"Read error"
);
return
false
;
}
}
else
if
(
version
==
1.4
)
{
Msg
(
DEBUG
,
"Detected post-processing view format 1.4"
);
if
(
!
fscanf
(
fp
,
"%s %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d "
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d "
"%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d
\n
"
,
name
,
&
NbTimeStep
,
&
NbSP
,
&
NbVP
,
&
NbTP
,
&
NbSL
,
&
NbVL
,
&
NbTL
,
&
NbST
,
&
NbVT
,
&
NbTT
,
&
NbSQ
,
&
NbVQ
,
&
NbTQ
,
&
NbSS
,
&
NbVS
,
&
NbTS
,
&
NbSH
,
&
NbVH
,
&
NbTH
,
&
NbSI
,
&
NbVI
,
&
NbTI
,
&
NbSY
,
&
NbVY
,
&
NbTY
,
&
NbSL2
,
&
NbVL2
,
&
NbTL2
,
&
NbST2
,
&
NbVT2
,
&
NbTT2
,
&
NbSQ2
,
&
NbVQ2
,
&
NbTQ2
,
&
NbSS2
,
&
NbVS2
,
&
NbTS2
,
&
NbSH2
,
&
NbVH2
,
&
NbTH2
,
&
NbSI2
,
&
NbVI2
,
&
NbTI2
,
&
NbSY2
,
&
NbVY2
,
&
NbTY2
,
&
NbT2
,
&
t2l
,
&
NbT3
,
&
t3l
)){
Msg
(
GERROR
,
"Read error"
);
return
false
;
}
}
else
{
Msg
(
GERROR
,
"Unknown post-processing file format (version %g)"
,
version
);
return
false
;
}
for
(
int
i
=
0
;
i
<
(
int
)
strlen
(
name
);
i
++
)
if
(
name
[
i
]
==
'^'
)
name
[
i
]
=
' '
;
swap
=
0
;
if
(
format
==
LIST_FORMAT_BINARY
)
{
int
testone
;
if
(
!
fread
(
&
testone
,
sizeof
(
int
),
1
,
fp
)){
Msg
(
GERROR
,
"Read error"
);
return
false
;
}
if
(
testone
!=
1
)
{
Msg
(
INFO
,
"Swapping bytes from binary file"
);
swap
=
1
;
}
}
DataSize
=
size
;
// Time values
Time
=
List_CreateFromFile
(
NbTimeStep
,
100
,
size
,
fp
,
format
,
swap
);
// Note: if nb==0, we still allocates the lists (so that they
// are ready to be filled later, e.g. in plugins)
#define LCD List_CreateFromFile(nb, 1000, size, fp, format, swap)
int
nb
;
// Points
nb
=
NbSP
?
NbSP
*
(
NbTimeStep
*
1
+
3
)
:
0
;
SP
=
LCD
;
nb
=
NbVP
?
NbVP
*
(
NbTimeStep
*
3
+
3
)
:
0
;
VP
=
LCD
;
nb
=
NbTP
?
NbTP
*
(
NbTimeStep
*
9
+
3
)
:
0
;
TP
=
LCD
;
// Lines
nb
=
NbSL
?
NbSL
*
(
NbTimeStep
*
2
*
1
+
6
)
:
0
;
SL
=
LCD
;
nb
=
NbVL
?
NbVL
*
(
NbTimeStep
*
2
*
3
+
6
)
:
0
;
VL
=
LCD
;
nb
=
NbTL
?
NbTL
*
(
NbTimeStep
*
2
*
9
+
6
)
:
0
;
TL
=
LCD
;
// Triangles
nb
=
NbST
?
NbST
*
(
NbTimeStep
*
3
*
1
+
9
)
:
0
;
ST
=
LCD
;
nb
=
NbVT
?
NbVT
*
(
NbTimeStep
*
3
*
3
+
9
)
:
0
;
VT
=
LCD
;
nb
=
NbTT
?
NbTT
*
(
NbTimeStep
*
3
*
9
+
9
)
:
0
;
TT
=
LCD
;
// Quadrangles
nb
=
NbSQ
?
NbSQ
*
(
NbTimeStep
*
4
*
1
+
12
)
:
0
;
SQ
=
LCD
;
nb
=
NbVQ
?
NbVQ
*
(
NbTimeStep
*
4
*
3
+
12
)
:
0
;
VQ
=
LCD
;
nb
=
NbTQ
?
NbTQ
*
(
NbTimeStep
*
4
*
9
+
12
)
:
0
;
TQ
=
LCD
;
// Tetrahedra
nb
=
NbSS
?
NbSS
*
(
NbTimeStep
*
4
*
1
+
12
)
:
0
;
SS
=
LCD
;
nb
=
NbVS
?
NbVS
*
(
NbTimeStep
*
4
*
3
+
12
)
:
0
;
VS
=
LCD
;
nb
=
NbTS
?
NbTS
*
(
NbTimeStep
*
4
*
9
+
12
)
:
0
;
TS
=
LCD
;
// Hexahedra
nb
=
NbSH
?
NbSH
*
(
NbTimeStep
*
8
*
1
+
24
)
:
0
;
SH
=
LCD
;
nb
=
NbVH
?
NbVH
*
(
NbTimeStep
*
8
*
3
+
24
)
:
0
;
VH
=
LCD
;
nb
=
NbTH
?
NbTH
*
(
NbTimeStep
*
8
*
9
+
24
)
:
0
;
TH
=
LCD
;
// Prisms
nb
=
NbSI
?
NbSI
*
(
NbTimeStep
*
6
*
1
+
18
)
:
0
;
SI
=
LCD
;
nb
=
NbVI
?
NbVI
*
(
NbTimeStep
*
6
*
3
+
18
)
:
0
;
VI
=
LCD
;
nb
=
NbTI
?
NbTI
*
(
NbTimeStep
*
6
*
9
+
18
)
:
0
;
TI
=
LCD
;
// Pyramids
nb
=
NbSY
?
NbSY
*
(
NbTimeStep
*
5
*
1
+
15
)
:
0
;
SY
=
LCD
;
nb
=
NbVY
?
NbVY
*
(
NbTimeStep
*
5
*
3
+
15
)
:
0
;
VY
=
LCD
;
nb
=
NbTY
?
NbTY
*
(
NbTimeStep
*
5
*
9
+
15
)
:
0
;
TY
=
LCD
;
// 2nd order Lines
nb
=
NbSL2
?
NbSL2
*
(
NbTimeStep
*
3
*
1
+
9
)
:
0
;
SL2
=
LCD
;
nb
=
NbVL2
?
NbVL2
*
(
NbTimeStep
*
3
*
3
+
9
)
:
0
;
VL2
=
LCD
;
nb
=
NbTL2
?
NbTL2
*
(
NbTimeStep
*
3
*
9
+
9
)
:
0
;
TL2
=
LCD
;
// 2nd order Triangles
nb
=
NbST2
?
NbST2
*
(
NbTimeStep
*
6
*
1
+
18
)
:
0
;
ST2
=
LCD
;
nb
=
NbVT2
?
NbVT2
*
(
NbTimeStep
*
6
*
3
+
18
)
:
0
;
VT2
=
LCD
;
nb
=
NbTT2
?
NbTT2
*
(
NbTimeStep
*
6
*
9
+
18
)
:
0
;
TT2
=
LCD
;
// 2nd order Quadrangles
nb
=
NbSQ2
?
NbSQ2
*
(
NbTimeStep
*
9
*
1
+
27
)
:
0
;
SQ2
=
LCD
;
nb
=
NbVQ2
?
NbVQ2
*
(
NbTimeStep
*
9
*
3
+
27
)
:
0
;
VQ2
=
LCD
;
nb
=
NbTQ2
?
NbTQ2
*
(
NbTimeStep
*
9
*
9
+
27
)
:
0
;
TQ2
=
LCD
;
// 2nd order Tetrahedra
nb
=
NbSS2
?
NbSS2
*
(
NbTimeStep
*
10
*
1
+
30
)
:
0
;
SS2
=
LCD
;
nb
=
NbVS2
?
NbVS2
*
(
NbTimeStep
*
10
*
3
+
30
)
:
0
;
VS2
=
LCD
;
nb
=
NbTS2
?
NbTS2
*
(
NbTimeStep
*
10
*
9
+
30
)
:
0
;
TS2
=
LCD
;
// 2nd order Hexahedra
nb
=
NbSH2
?
NbSH2
*
(
NbTimeStep
*
27
*
1
+
81
)
:
0
;
SH2
=
LCD
;
nb
=
NbVH2
?
NbVH2
*
(
NbTimeStep
*
27
*
3
+
81
)
:
0
;
VH2
=
LCD
;
nb
=
NbTH2
?
NbTH2
*
(
NbTimeStep
*
27
*
9
+
81
)
:
0
;
TH2
=
LCD
;
// 2nd order Prisms
nb
=
NbSI2
?
NbSI2
*
(
NbTimeStep
*
18
*
1
+
54
)
:
0
;
SI2
=
LCD
;
nb
=
NbVI2
?
NbVI2
*
(
NbTimeStep
*
18
*
3
+
54
)
:
0
;
VI2
=
LCD
;
nb
=
NbTI2
?
NbTI2
*
(
NbTimeStep
*
18
*
9
+
54
)
:
0
;
TI2
=
LCD
;
// 2nd order Pyramids
nb
=
NbSY2
?
NbSY2
*
(
NbTimeStep
*
14
*
1
+
42
)
:
0
;
SY2
=
LCD
;
nb
=
NbVY2
?
NbVY2
*
(
NbTimeStep
*
14
*
3
+
42
)
:
0
;
VY2
=
LCD
;
nb
=
NbTY2
?
NbTY2
*
(
NbTimeStep
*
14
*
9
+
42
)
:
0
;
TY2
=
LCD
;
#undef LCD
// 2D strings
nb
=
NbT2
?
NbT2
*
4
:
0
;
T2D
=
List_CreateFromFile
(
nb
,
100
,
size
,
fp
,
format
,
swap
);
if
(
version
<=
1.2
)
T2C
=
List_CreateFromFileOld
(
t2l
,
100
,
sizeof
(
char
),
fp
,
format
,
swap
);
else
T2C
=
List_CreateFromFile
(
t2l
,
100
,
sizeof
(
char
),
fp
,
format
,
swap
);
// 3D strings
nb
=
NbT3
?
NbT3
*
5
:
0
;
T3D
=
List_CreateFromFile
(
nb
,
100
,
size
,
fp
,
format
,
swap
);
if
(
version
<=
1.2
)
T3C
=
List_CreateFromFileOld
(
t3l
,
100
,
sizeof
(
char
),
fp
,
format
,
swap
);
else
T3C
=
List_CreateFromFile
(
t3l
,
100
,
sizeof
(
char
),
fp
,
format
,
swap
);
Msg
(
DEBUG
,
"Read View '%s' (%d TimeSteps): "
"SP(%d/%d) VP(%d/%d) TP(%d/%d) "
"SL(%d/%d) VL(%d/%d) TL(%d/%d) "
"ST(%d/%d) VT(%d/%d) TT(%d/%d) "
"SQ(%d/%d) VQ(%d/%d) TQ(%d/%d) "
"SS(%d/%d) VS(%d/%d) TS(%d/%d) "
"SH(%d/%d) VH(%d/%d) TH(%d/%d) "
"SI(%d/%d) VI(%d/%d) TI(%d/%d) "
"SY(%d/%d) VY(%d/%d) TY(%d/%d) "
"SL2(%d/%d) VL2(%d/%d) TL2(%d/%d) "
"ST2(%d/%d) VT2(%d/%d) TT2(%d/%d) "
"SQ2(%d/%d) VQ2(%d/%d) TQ2(%d/%d) "
"SS2(%d/%d) VS2(%d/%d) TS2(%d/%d) "
"SH2(%d/%d) VH2(%d/%d) TH2(%d/%d) "
"SI2(%d/%d) VI2(%d/%d) TI2(%d/%d) "
"SY2(%d/%d) VY2(%d/%d) TY2(%d/%d) "
"T2(%d/%d/%d) T3(%d/%d/%d) "
,
name
,
NbTimeStep
,
NbSP
,
List_Nbr
(
SP
),
NbVP
,
List_Nbr
(
VP
),
NbTP
,
List_Nbr
(
TP
),
NbSL
,
List_Nbr
(
SL
),
NbVL
,
List_Nbr
(
VL
),
NbTL
,
List_Nbr
(
TL
),
NbST
,
List_Nbr
(
ST
),
NbVT
,
List_Nbr
(
VT
),
NbTT
,
List_Nbr
(
TT
),
NbSQ
,
List_Nbr
(
SQ
),
NbVQ
,
List_Nbr
(
VQ
),
NbTQ
,
List_Nbr
(
TQ
),
NbSS
,
List_Nbr
(
SS
),
NbVS
,
List_Nbr
(
VS
),
NbTS
,
List_Nbr
(
TS
),
NbSH
,
List_Nbr
(
SH
),
NbVH
,
List_Nbr
(
VH
),
NbTH
,
List_Nbr
(
TH
),
NbSI
,
List_Nbr
(
SI
),
NbVI
,
List_Nbr
(
VI
),
NbTI
,
List_Nbr
(
TI
),
NbSY
,
List_Nbr
(
SY
),
NbVY
,
List_Nbr
(
VY
),
NbTY
,
List_Nbr
(
TY
),
NbSL2
,
List_Nbr
(
SL2
),
NbVL2
,
List_Nbr
(
VL2
),
NbTL2
,
List_Nbr
(
TL2
),
NbST2
,
List_Nbr
(
ST2
),
NbVT2
,
List_Nbr
(
VT2
),
NbTT2
,
List_Nbr
(
TT2
),
NbSQ2
,
List_Nbr
(
SQ2
),
NbVQ2
,
List_Nbr
(
VQ2
),
NbTQ2
,
List_Nbr
(
TQ2
),
NbSS2
,
List_Nbr
(
SS2
),
NbVS2
,
List_Nbr
(
VS2
),
NbTS2
,
List_Nbr
(
TS2
),
NbSH2
,
List_Nbr
(
SH2
),
NbVH2
,
List_Nbr
(
VH2
),
NbTH2
,
List_Nbr
(
TH2
),
NbSI2
,
List_Nbr
(
SI2
),
NbVI2
,
List_Nbr
(
VI2
),
NbTI2
,
List_Nbr
(
TI2
),
NbSY2
,
List_Nbr
(
SY2
),
NbVY2
,
List_Nbr
(
VY2
),
NbTY2
,
List_Nbr
(
TY2
),
NbT2
,
List_Nbr
(
T2D
),
List_Nbr
(
T2C
),
NbT3
,
List_Nbr
(
T3D
),
List_Nbr
(
T3C
));
finalize
();
}
do
{
if
(
!
fgets
(
str
,
256
,
fp
)
||
feof
(
fp
))
Msg
(
GERROR
,
"Prematured end of file"
);
}
while
(
str
[
0
]
!=
'$'
);
}
return
true
;
}
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