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
Package registry
Model registry
Operate
Terraform modules
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
Romin Tomasetti
gmsh
Commits
7454ee5d
Verified
Commit
7454ee5d
authored
2 years ago
by
Giannis Nikiteas
Browse files
Options
Downloads
Patches
Plain Diff
Simplifies t2 example
parent
f0005fcf
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tutorials/fortran/t2.f90
+79
-65
79 additions, 65 deletions
tutorials/fortran/t2.f90
with
79 additions
and
65 deletions
tutorials/fortran/t2.f90
+
79
−
65
View file @
7454ee5d
...
@@ -12,40 +12,14 @@ program main
...
@@ -12,40 +12,14 @@ program main
use
gmsh
use
gmsh
implicit
none
implicit
none
integer
(
c_int
)
::
ierr
,
argc
,
itmp
,
i
,
ps
,
len
integer
(
c_int
)
::
recombine
integer
(
c_size_t
)
::
ov_n
,
xyz_n
,
numElements_n
,
heights_n
,
ov2_n
integer
(
c_size_t
)
::
ov_n
,
xyz_n
,
numElements_n
,
heights_n
,
ov2_n
real
(
c_double
)
::
lc
integer
(
c_int
)
::
cl1
(
4
),
cl2
(
4
),
cl3
(
4
),
cl4
(
4
),
cl5
(
4
),
cl6
(
4
),
cl7
(
4
),
&
s1
(
1
),
s2
(
1
),
s3
(
1
),
s4
(
1
),
s5
(
1
),
s6
(
1
),
s7
(
1
),
g5
(
3
),
&
integer
(
c_int
)
::
cl1
(
4
)
=
[
4
,
1
,
-2
,
3
]
g6
(
1
),
g7
(
2
),
t
(
2
),
iv
(
2
),
iv2
(
4
),
numElements
(
0
),
&
integer
(
c_int
)
::
cl2
(
4
)
=
[
5
,
-8
,
-7
,
3
]
sl1
(
6
),
v1
(
1
),
ss
(
16
),
recombine
,
ierr
,
argc
,
itmp
,
i
,
len
integer
(
c_int
)
::
cl3
(
4
)
=
[
115
,
-111
,
3
,
110
]
real
(
c_double
)
::
lc
,
iv0
(
0
),
heights
(
0
)
integer
(
c_int
)
::
cl4
(
4
)
=
[
111
,
116
,
-112
,
-7
]
type
(
c_ptr
)
::
ov
,
xyz
,
ov2
integer
(
c_int
)
::
cl5
(
4
)
=
[
112
,
117
,
-113
,
-8
]
integer
(
c_int
)
::
cl6
(
4
)
=
[
114
,
-110
,
5
,
113
]
integer
(
c_int
)
::
cl7
(
4
)
=
[
115
,
116
,
117
,
114
]
integer
(
c_int
)
::
s1
(
1
)
=
[
1
]
integer
(
c_int
)
::
s2
(
1
)
=
[
10
]
integer
(
c_int
)
::
s3
(
1
)
=
[
118
]
integer
(
c_int
)
::
s4
(
1
)
=
[
120
]
integer
(
c_int
)
::
s5
(
1
)
=
[
122
]
integer
(
c_int
)
::
s6
(
1
)
=
[
124
]
integer
(
c_int
)
::
s7
(
1
)
=
[
126
]
integer
(
c_int
)
::
g5
(
3
)
=
[
1
,
2
,
4
]
integer
(
c_int
)
::
g6
(
1
)
=
[
1
]
integer
(
c_int
)
::
g7
(
2
)
=
[
129
,
130
]
integer
(
c_int
)
::
t
(
2
)
=
[
0
,
5
]
integer
(
c_int
)
::
iv
(
2
)
=
[
0
,
3
]
integer
(
c_int
)
::
iv2
(
4
)
=
[
2
,
1
,
2
,
11
]
integer
(
c_int
)
::
numElements
(
0
)
real
(
c_double
)
::
iv0
(
0
)
real
(
c_double
)
::
heights
(
0
)
integer
(
c_int
)
::
sl1
(
6
)
=
[
127
,
119
,
121
,
123
,
125
,
11
]
integer
(
c_int
)
::
v1
(
1
)
=
[
128
]
integer
(
c_int
)
::
ss
(
16
)
=
[
0
,
103
,
0
,
105
,
0
,
109
,
0
,
102
,
0
,
28
,
0
,
24
,
0
,
6
,
0
,
5
]
type
(
c_ptr
),
allocatable
::
argv
(:)
type
(
c_ptr
),
allocatable
::
argv
(:)
type
(
c_ptr
)
::
ov
,
xyz
,
ov2
,
ov_3
type
string
type
string
character
(
len
=
:,
kind
=
c_char
),
allocatable
::
item
character
(
len
=
:,
kind
=
c_char
),
allocatable
::
item
...
@@ -57,60 +31,75 @@ program main
...
@@ -57,60 +31,75 @@ program main
integer
(
c_int
),
pointer
::
pf_ov
(:),
pf_ov3
(:)
integer
(
c_int
),
pointer
::
pf_ov
(:),
pf_ov3
(:)
real
(
c_double
),
pointer
::
pf_xyz
(:)
real
(
c_double
),
pointer
::
pf_xyz
(:)
lc
=
0.01
argc
=
command_argument_count
()
argc
=
command_argument_count
()
allocate
(
argv
(
argc
+
2
))
allocate
(
argv
(
argc
+
2
))
allocate
(
tmp
(
argc
+
1
))
allocate
(
tmp
(
argc
+
1
))
do
i
=
0
,
argc
do
i
=
0
,
argc
call
get_command_argument
(
i
,
buf
,
len
)
call
get_command_argument
(
i
,
buf
,
len
)
tmp
(
i
+
1
)
%
item
=
buf
(
1
:
len
)
//
c_null_char
tmp
(
i
+
1
)
%
item
=
buf
(
1
:
len
)//
c_null_char
argv
(
i
+
1
)
=
c_loc
(
tmp
(
i
+
1
)
%
item
)
argv
(
i
+
1
)
=
c_loc
(
tmp
(
i
+
1
)
%
item
)
enddo
end
do
argv
(
argc
+
2
)
=
c_null_ptr
argv
(
argc
+
2
)
=
c_null_ptr
call
gmshInitialize
(
argc
+
1
,
argv
,
1
,
0
,
ierr
)
call
gmshInitialize
(
argc
+
1
,
argv
,
1
,
0
,
ierr
)
call
gmshModelAdd
(
"t2"
//
c_null_char
,
ierr
)
call
gmshModelAdd
(
"t2"
//
c_null_char
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0d0
,
0d0
,
0d0
,
lc
,
1
,
ierr
)
! Copied from `t1.f90'...
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0d0
,
0d0
,
lc
,
2
,
ierr
)
lc
=
0.01
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0.3d0
,
0d0
,
lc
,
3
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.0d0
,
0.0d0
,
0.0d0
,
lc
,
1
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0d0
,
0.3d0
,
0d0
,
lc
,
4
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0.0d0
,
0.0d0
,
lc
,
2
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0.3d0
,
0.0d0
,
lc
,
3
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.0d0
,
0.3d0
,
0.0d0
,
lc
,
4
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
1
,
2
,
1
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
1
,
2
,
1
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
3
,
2
,
2
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
3
,
2
,
2
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
3
,
4
,
3
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
3
,
4
,
3
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
4
,
1
,
4
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
4
,
1
,
4
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl1
,
4_8
,
1
,
0
,
ierr
)
cl1
=
[
4
,
1
,
-2
,
3
];
s1
=
[
1
]
itmp
=
gmshModelGeoAddPlaneSurface
(
s1
,
1_8
,
1
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl1
,
size
(
cl1
,
kind
=
c_size_t
),
1
,
0
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s1
,
size
(
s1
,
kind
=
c_size_t
),
1
,
ierr
)
call
gmshModelGeoSynchronize
(
ierr
)
call
gmshModelGeoSynchronize
(
ierr
)
itmp
=
gmshModelAddPhysicalGroup
(
1
,
g5
,
3_8
,
5
,
""
,
ierr
)
ps
=
gmshModelAddPhysicalGroup
(
2
,
g6
,
1_8
,
-1
,
""
,
ierr
)
call
gmshModelSetPhysicalName
(
2
,
ps
,
"My surface"
//
c_null_char
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0d0
,
0.4d0
,
0d0
,
lc
,
5
,
ierr
)
g5
=
[
1
,
2
,
4
];
g6
=
[
1
]
itmp
=
gmshModelAddPhysicalGroup
(
1
,
g5
,
size
(
g5
,
kind
=
c_size_t
),
5
,
""
//
c_null_char
,
ierr
)
itmp
=
gmshModelAddPhysicalGroup
(
2
,
g6
,
size
(
g6
,
kind
=
c_size_t
),
-1
,
"My surface"
//
c_null_char
,
ierr
)
call
gmshModelSetPhysicalName
(
2
,
itmp
,
"My surface"
//
c_null_char
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.0d0
,
0.4d0
,
0.0d0
,
lc
,
5
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
4
,
5
,
5
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
4
,
5
,
5
,
ierr
)
call
gmshModelGeoTranslate
(
t
,
2_8
,
-0.02d0
,
0d0
,
0d0
,
ierr
)
t
=
[
0
,
5
]
call
gmshModelGeoTranslate
(
t
,
size
(
t
,
kind
=
c_size_t
),
-0.02d0
,
0.0d0
,
0.0d0
,
ierr
)
call
gmshModelGeoRotate
(
t
,
size
(
t
,
kind
=
c_size_t
),
0.0d0
,
0.3d0
,
0.0d0
,
&
0.0d0
,
0.0d0
,
1.0d0
,
-
acos
(
1.0d0
)
/
4.0d0
,
ierr
)
call
gmshModelGeoRotate
(
t
,
2_8
,
0d0
,
0.3d0
,
0d0
,
0d0
,
0d0
,
1d0
,
-
acos
(
1.0
)
/
4d0
,
ierr
)
! Note that there are no units in Gmsh: coordinates are just numbers - it's
! up to the user to associate a meaning to them.
call
gmshModelGeoCopy
(
iv
,
2_8
,
ov
,
ov_n
,
ierr
)
! Point 3 can be duplicated and translated by 0.05 along the y axis by using
! the `copy()' function, which takes a vector of (dim, tag) pairs as input,
! and returns another vector of (dim, tag) pairs:
iv
=
[
0
,
3
]
call
gmshModelGeoCopy
(
iv
,
size
(
iv
,
kind
=
c_size_t
),
ov
,
ov_n
,
ierr
)
call
c_f_pointer
(
ov
,
pf_ov
,
[
ov_n
])
call
c_f_pointer
(
ov
,
pf_ov
,
[
ov_n
])
call
gmshModelGeoTranslate
(
pf_ov
,
ov_n
,
0d0
,
0.05d0
,
0d0
,
ierr
)
call
gmshModelGeoTranslate
(
pf_ov
,
ov_n
,
0.
0d0
,
0.05d0
,
0.
0d0
,
ierr
)
! The new point tag is available in ov[0].second, and can be used to create
! new lines:
itmp
=
gmshModelGeoAddLine
(
3
,
pf_ov
(
2
),
7
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
3
,
pf_ov
(
2
),
7
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
pf_ov
(
2
),
5
,
8
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
pf_ov
(
2
),
5
,
8
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl2
,
4_8
,
10
,
0
,
ierr
)
cl2
=
[
5
,
-8
,
-7
,
3
];
s2
=
[
10
]
itmp
=
gmshModelGeoAddPlaneSurface
(
s2
,
1_8
,
11
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl2
,
size
(
cl2
,
kind
=
c_size_t
),
10
,
0
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s2
,
size
(
s2
,
kind
=
c_size_t
),
11
,
ierr
)
! In the same way, we can translate copies of the two surfaces 1 and 11 to
! the right with the following command:
iv2
=
[
2
,
1
,
2
,
11
]
call
gmshModelGeoCopy
(
iv2
,
4_8
,
ov
,
ov_n
,
ierr
)
call
gmshModelGeoCopy
(
iv2
,
4_8
,
ov
,
ov_n
,
ierr
)
call
c_f_pointer
(
ov
,
pf_ov
,
[
ov_n
])
call
c_f_pointer
(
ov
,
pf_ov
,
[
ov_n
])
...
@@ -118,17 +107,21 @@ program main
...
@@ -118,17 +107,21 @@ program main
print
*
,
"New surfaces "
,
pf_ov
(
2
),
" and "
,
pf_ov
(
4
)
print
*
,
"New surfaces "
,
pf_ov
(
2
),
" and "
,
pf_ov
(
4
)
itmp
=
gmshModelGeoAddPoint
(
0d0
,
0.3d0
,
0.12d0
,
lc
,
100
,
ierr
)
! Volumes are the fourth type of elementary entities in Gmsh. In the same way
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0.3d0
,
0.12d0
,
lc
,
101
,
ierr
)
! one defines curve loops to build surfaces, one has to define surface loops
! (i.e. `shells') to build volumes. The following volume does not have holes
! and thus consists of a single surface loop:
itmp
=
gmshModelGeoAddPoint
(
0.0d0
,
0.30d0
,
0.12d0
,
lc
,
100
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0.30d0
,
0.12d0
,
lc
,
101
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0.35d0
,
0.12d0
,
lc
,
102
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
0.1d0
,
0.35d0
,
0.12d0
,
lc
,
102
,
ierr
)
! We would like to retrieve the coordinates of point 5 to create point 103,
! so we synchronize the model, and use `getValue()'
call
gmshModelGeoSynchronize
(
ierr
)
call
gmshModelGeoSynchronize
(
ierr
)
call
gmshModelGetValue
(
0
,
5
,
iv0
,
0_8
,
xyz
,
xyz_n
,
ierr
)
call
gmshModelGetValue
(
0
,
5
,
iv0
,
size
(
iv0
,
kind
=
c_size_t
),
xyz
,
xyz_n
,
ierr
)
call
c_f_pointer
(
xyz
,
pf_xyz
,
[
xyz_n
])
call
c_f_pointer
(
xyz
,
pf_xyz
,
[
xyz_n
])
itmp
=
gmshModelGeoAddPoint
(
pf_xyz
(
1
),
pf_xyz
(
2
),
0.12d0
,
lc
,
103
,
ierr
)
itmp
=
gmshModelGeoAddPoint
(
pf_xyz
(
1
),
pf_xyz
(
2
),
0.12d0
,
lc
,
103
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
4
,
100
,
110
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
4
,
100
,
110
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
3
,
101
,
111
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
3
,
101
,
111
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
6
,
102
,
112
,
ierr
);
itmp
=
gmshModelGeoAddLine
(
6
,
102
,
112
,
ierr
);
...
@@ -138,42 +131,63 @@ program main
...
@@ -138,42 +131,63 @@ program main
itmp
=
gmshModelGeoAddLine
(
101
,
102
,
116
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
101
,
102
,
116
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
102
,
103
,
117
,
ierr
)
itmp
=
gmshModelGeoAddLine
(
102
,
103
,
117
,
ierr
)
cl3
=
[
115
,
-111
,
3
,
110
];
s3
=
[
118
]
itmp
=
gmshModelGeoAddCurveLoop
(
cl3
,
4_8
,
118
,
0
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl3
,
4_8
,
118
,
0
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s3
,
1_8
,
119
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s3
,
1_8
,
119
,
ierr
)
cl4
=
[
111
,
116
,
-112
,
-7
];
s4
=
[
120
]
itmp
=
gmshModelGeoAddCurveLoop
(
cl4
,
4_8
,
120
,
0
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl4
,
4_8
,
120
,
0
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s4
,
1_8
,
121
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s4
,
1_8
,
121
,
ierr
)
cl5
=
[
112
,
117
,
-113
,
-8
];
s5
=
[
122
]
itmp
=
gmshModelGeoAddCurveLoop
(
cl5
,
4_8
,
122
,
0
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl5
,
4_8
,
122
,
0
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s5
,
1_8
,
123
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s5
,
1_8
,
123
,
ierr
)
cl6
=
[
114
,
-110
,
5
,
113
];
s6
=
[
124
]
itmp
=
gmshModelGeoAddCurveLoop
(
cl6
,
4_8
,
124
,
0
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl6
,
4_8
,
124
,
0
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s6
,
1_8
,
125
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s6
,
1_8
,
125
,
ierr
)
cl7
=
[
115
,
116
,
117
,
114
];
s7
=
[
126
]
itmp
=
gmshModelGeoAddCurveLoop
(
cl7
,
4_8
,
126
,
0
,
ierr
)
itmp
=
gmshModelGeoAddCurveLoop
(
cl7
,
4_8
,
126
,
0
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s7
,
1_8
,
127
,
ierr
)
itmp
=
gmshModelGeoAddPlaneSurface
(
s7
,
1_8
,
127
,
ierr
)
sl1
=
[
127
,
119
,
121
,
123
,
125
,
11
];
v1
=
[
128
]
itmp
=
gmshModelGeoAddSurfaceLoop
(
sl1
,
6_8
,
128
,
ierr
)
itmp
=
gmshModelGeoAddSurfaceLoop
(
sl1
,
6_8
,
128
,
ierr
)
itmp
=
gmshModelGeoAddVolume
(
v1
,
1_8
,
129
,
ierr
)
itmp
=
gmshModelGeoAddVolume
(
v1
,
1_8
,
129
,
ierr
)
! When a volume can be extruded from a surface, it is usually easier to use
! the `extrude()' function directly instead of creating all the points,
! curves and surfaces by hand. For example, the following command extrudes
! the surface 11 along the z axis and automatically creates a new volume (as
! well as all the needed points, curves and surfaces). As expected, the
! function takes a vector of (dim, tag) pairs as input as well as the
! translation vector, and returns a vector of (dim, tag) pairs as output:
numElements_n
=
0
numElements_n
=
0
heights_n
=
0
heights_n
=
0
recombine
=
0
recombine
=
0
ov_3
=
c_loc
(
pf_ov
(
3
))
call
c_f_pointer
(
c_loc
(
pf_ov
(
3
)),
pf_ov3
,
[
ov_n
-
2
])
call
c_f_pointer
(
ov_3
,
pf_ov3
,
[
ov_n
-
2
])
call
gmshModelGeoExtrude
(
pf_ov3
,
2_8
,
0.0d0
,
0.0d0
,
0.12d0
,
ov2
,
ov2_n
,
&
call
gmshModelGeoExtrude
(
pf_ov3
,
2_8
,
0d0
,
0d0
,
0.12d0
,
ov2
,
ov2_n
,
&
numElements
,
numElements_n
,
heights
,
heights_n
,
recombine
,
ierr
)
numElements
,
numElements_n
,
heights
,
heights_n
,
recombine
,
ierr
)
! Mesh sizes associated to geometrical points can be set by passing a vector
! of (dim, tag) pairs for the corresponding points:
ss
=
[
0
,
103
,
0
,
105
,
0
,
109
,
0
,
102
,
0
,
28
,
0
,
24
,
0
,
6
,
0
,
5
]
call
gmshModelGeoMeshSetSize
(
ss
,
16_8
,
lc
*
3
,
ierr
)
call
gmshModelGeoMeshSetSize
(
ss
,
16_8
,
lc
*
3
,
ierr
)
! We finish by synchronizing the data from the built-in CAD kernel with the
! Gmsh model:
call
gmshModelGeoSynchronize
(
ierr
)
call
gmshModelGeoSynchronize
(
ierr
)
itmp
=
gmshModelAddPhysicalGroup
(
3
,
g7
,
2_8
,
1
,
""
,
ierr
)
! We group volumes 129 and 130 in a single physical group with tag `1' and
! name "The volume":
g7
=
[
129
,
130
]
itmp
=
gmshModelAddPhysicalGroup
(
3
,
g7
,
size
(
g7
,
kind
=
c_size_t
),
1
,
""
//
c_null_char
,
ierr
)
call
gmshModelSetPhysicalName
(
3
,
1
,
"The volume"
//
c_null_char
,
ierr
)
call
gmshModelSetPhysicalName
(
3
,
1
,
"The volume"
//
c_null_char
,
ierr
)
! We finally generate and save the mesh:
call
gmshModelMeshGenerate
(
3
,
ierr
)
call
gmshModelMeshGenerate
(
3
,
ierr
)
call
gmshWrite
(
"t2.msh"
//
c_null_char
,
ierr
)
call
gmshWrite
(
"t2.msh"
//
c_null_char
,
ierr
)
! call gmshFltkRun(ierr)
! call gmshFltkRun(ierr)
...
...
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