Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
giraffe
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
3
Issues
3
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
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
nek5000
giraffe
Commits
bebe10d5
Commit
bebe10d5
authored
Oct 04, 2017
by
Elia Merzari
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding fix for additional helmoltz solve ... due to update to Nek
parent
1a1f1163
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
247 additions
and
2 deletions
+247
-2
src_nek/nek_moose.f
src_nek/nek_moose.f
+247
-2
No files found.
src_nek/nek_moose.f
View file @
bebe10d5
...
...
@@ -34,7 +34,7 @@ C=======================================================================
if
(
lastep
.eq.
1
)
then
pstep
=
2
else
call
nek_advance
call
nek_advance
_moose
pstep
=
2
endif
...
...
@@ -51,7 +51,7 @@ C=======================================================================
integer
pstep
pstep
=
pstep
+1
call
heat
(
pstep
)
call
heat
_mod
(
pstep
)
return
end
...
...
@@ -349,3 +349,248 @@ c-----------------------------------------------------------------------
return
end
c
-----------------------------------------------------------------------
c
-----------------------------------------------------------------------
subroutine
cdscal_mod
(
igeom
)
C
C
Solve
the
convection
-
diffusion
equation
for
passive
scalar
IPSCAL
C
include
'SIZE'
include
'INPUT'
include
'GEOM'
include
'MVGEOM'
include
'SOLN'
include
'MASS'
include
'TSTEP'
COMMON
/
CPRINT
/
IFPRINT
LOGICAL
IFPRINT
LOGICAL
IFCONV
C
COMMON
/
SCRNS
/
TA
(
LX1
,
LY1
,
LZ1
,
LELT
)
$
,
TB
(
LX1
,
LY1
,
LZ1
,
LELT
)
COMMON
/
SCRVH
/
H1
(
LX1
,
LY1
,
LZ1
,
LELT
)
$
,
H2
(
LX1
,
LY1
,
LZ1
,
LELT
)
include
'ORTHOT'
if
(
ifdg
)
then
call
cdscal_dg
(
igeom
)
return
endif
napprox
(
1
)
=
laxt
! Fix this... pff 10/10/15
nel
=
nelfld
(
ifield
)
n
=
nx1
*
ny1
*
nz1
*
nel
if
(
igeom
.eq.
1
)
then
! geometry at t^{n-1}
call
makeq
call
lagscal
else
! geometry at t^n
IF
(
IFPRINT
)
THEN
IF
(
IFMODEL
.AND.
IFKEPS
)
THEN
NFLDT
=
NFIELD
-
1
IF
(
IFIELD
.EQ.
NFLDT
.AND.
NID
.EQ.
0
)
THEN
WRITE
(
6
,
*
)
' Turbulence Model - k/epsilon solution'
ENDIF
ELSE
IF
(
IFIELD
.EQ.
2.
AND
.NID.
EQ
.0
)
THEN
WRITE
(
6
,
*
)
' Temperature/Passive scalar solution'
ENDIF
ENDIF
ENDIF
if1
=
ifield
-1
write
(
name4
,
1
)
if1
-1
1
format
(
'PS'
,
i2
)
if
(
ifield
.eq.
2
)
write
(
name4
,
'(A4)'
)
'TEMP'
C
C
New
geometry
C
isd
=
1
if
(
ifaxis
.and.
ifaziv
.and.
ifield
.eq.
2
)
isd
=
2
c
if
(
ifaxis
.and.
ifmhd
)
isd
=
2
!This is a problem if T is to be T!
do
1000
iter
=
1
,
nmxnl
! iterate for nonlin. prob. (e.g. radiation b.c.)
INTYPE
=
0
IF
(
IFTRAN
)
INTYPE
=
-1
CALL
SETHLM
(
H1
,
H2
,
INTYPE
)
CALL
BCNEUSC
(
TA
,
-1
)
CALL
ADD2
(
H2
,
TA
,
N
)
CALL
BCDIRSC
(
T
(
1
,
1
,
1
,
1
,
IFIELD
-1
))
CALL
AXHELM
(
TA
,
T
(
1
,
1
,
1
,
1
,
IFIELD
-1
),
H1
,
H2
,
IMESH
,
isd
)
CALL
SUB3
(
TB
,
BQ
(
1
,
1
,
1
,
1
,
IFIELD
-1
),
TA
,
N
)
CALL
BCNEUSC
(
TA
,
1
)
CALL
ADD2
(
TB
,
TA
,
N
)
c
CALL
HMHOLTZ
(
name4
,
TA
,
TB
,
H1
,
H2
c
$
,
TMASK
(
1
,
1
,
1
,
1
,
IFIELD
-1
)
c
$
,
TMULT
(
1
,
1
,
1
,
1
,
IFIELD
-1
)
c
$
,
IMESH
,
TOLHT
(
IFIELD
),
NMXH
,
isd
)
if
(
iftmsh
(
ifield
))
then
call
hsolve
(
name4
,
TA
,
TB
,
H1
,
H2
$
,
tmask
(
1
,
1
,
1
,
1
,
ifield
-1
)
$
,
tmult
(
1
,
1
,
1
,
1
,
ifield
-1
)
$
,
imesh
,
tolht
(
ifield
),
nmxh
,
1
$
,
approx
,
napprox
,
bintm1
)
else
call
hsolve
(
name4
,
TA
,
TB
,
H1
,
H2
$
,
tmask
(
1
,
1
,
1
,
1
,
ifield
-1
)
$
,
tmult
(
1
,
1
,
1
,
1
,
ifield
-1
)
$
,
imesh
,
tolht
(
ifield
),
nmxh
,
1
$
,
approx
,
napprox
,
binvm1
)
endif
call
add2
(
t
(
1
,
1
,
1
,
1
,
ifield
-1
),
ta
,
n
)
call
cvgnlps
(
ifconv
)
! Check convergence for nonlinear problem
if
(
ifconv
)
goto
2000
C
Radiation
case
,
smooth
convergence
,
avoid
flip
-
flop
(
ER
)
.
CALL
CMULT
(
TA
,
0.5
,
N
)
CALL
SUB2
(
T
(
1
,
1
,
1
,
1
,
IFIELD
-1
),
TA
,
N
)
1000
CONTINUE
2000
CONTINUE
CALL
BCNEUSC
(
TA
,
1
)
endif
return
end
c
-----------------------------------------------------------------------
subroutine
heat_mod
(
igeom
)
C
C
Driver
for
temperature
or
passive
scalar
.
C
C
Current
version
:
C
(
1
)
Varaiable
properties
.
C
(
2
)
Implicit
time
stepping
.
C
(
3
)
User
specified
tolerance
for
the
Helmholtz
solver
C
(
not
based
on
eigenvalues
)
.
C
(
4
)
A
passive
scalar
can
be
defined
on
either
the
C
temperatur
or
the
velocity
mesh
.
C
(
5
)
A
passive
scalar
has
its
own
multiplicity
(
B
.C.
)
.
C
include
'SIZE'
include
'INPUT'
include
'TSTEP'
include
'TURBO'
include
'DEALIAS'
real
*
8
ts
,
dnekclock
ts
=
dnekclock
()
if
(
nio
.eq.
0
.and.
igeom
.eq.
2
)
&
write
(
*
,
'(13x,a)'
)
'Solving for Hmholtz scalars'
do
ifield
=
2
,
nfield
if
(
idpss
(
ifield
-1
)
.eq.
0
)
then
! helmholtz
intype
=
-1
if
(
.not.
iftmsh
(
ifield
))
imesh
=
1
if
(
iftmsh
(
ifield
))
imesh
=
2
call
unorm
call
settolt
call
cdscal_mod
(
igeom
)
endif
enddo
if
(
nio
.eq.
0
.and.
igeom
.eq.
2
)
&
write
(
*
,
'(4x,i7,a,1p2e12.4)'
)
&
istep
,
' Scalars done'
,
time
,
dnekclock
()
-
ts
return
end
c
-----------------------------------------------------------------------
subroutine
nek_advance_moose
include
'SIZE'
include
'TOTAL'
include
'CTIMER'
common
/
cgeom
/
igeom
call
nekgsync
if
(
iftran
)
call
settime
if
(
ifmhd
)
call
cfl_check
call
setsolv
call
comment
if
(
ifcmt
)
then
if
(
nio
.eq.
0.
and
.istep.
le
.1
)
write
(
6
,
*
)
'CMT branch active'
call
cmt_nek_advance
return
endif
if
(
ifsplit
)
then
! PN/PN formulation
do
igeom
=
1
,
ngeom
! within cvode we use the lagged wx for
! extrapolation, that's why we have to call it before gengeom
if
(
ifheat
.and.
ifcvode
)
call
heat_cvode
(
igeom
)
if
(
ifgeom
)
then
call
gengeom
(
igeom
)
call
geneig
(
igeom
)
endif
if
(
ifheat
)
call
heat_mod
(
igeom
)
if
(
igeom
.eq.
2
)
then
call
setprop
if
(
iflomach
)
call
qthermal
(
.true.
,
.false.
,
dummy
)
endif
if
(
ifflow
)
call
fluid
(
igeom
)
if
(
ifmvbd
)
call
meshv
(
igeom
)
if
(
param
(
103
)
.gt.
0
)
call
q_filter
(
param
(
103
))
call
setup_convect
(
igeom
)
! Save convective velocity _after_ filter
enddo
else
! PN-2/PN-2 formulation
call
setprop
do
igeom
=
1
,
ngeom
if
(
igeom
.gt.
2
)
call
userchk_set_xfer
if
(
ifgeom
)
then
call
gengeom
(
igeom
)
call
geneig
(
igeom
)
endif
if
(
ifneknekm
.and.
igeom
.eq.
2
)
call
multimesh_create
if
(
ifmhd
)
then
if
(
ifheat
)
call
heat
(
igeom
)
call
induct
(
igeom
)
elseif
(
ifpert
)
then
if
(
ifbase
.and.
ifheat
)
call
heat
(
igeom
)
if
(
ifbase
.and.
ifflow
)
call
fluid
(
igeom
)
if
(
ifflow
)
call
fluidp
(
igeom
)
if
(
ifheat
)
call
heatp
(
igeom
)
else
! std. nek case
if
(
ifheat
)
call
heat_mod
(
igeom
)
if
(
ifflow
)
call
fluid
(
igeom
)
if
(
ifmvbd
)
call
meshv
(
igeom
)
endif
if
(
igeom
.eq.
ngeom
.and.
param
(
103
)
.gt.
0
)
$
call
q_filter
(
param
(
103
))
call
setup_convect
(
igeom
)
! Save convective velocity _after_ filter
enddo
endif
return
end
c
-----------------------------------------------------------------------
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