Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
D
DOUAR WSMP
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
Container Registry
Model registry
Operate
Environments
Terraform modules
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
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
HUGG
DOUAR WSMP
Commits
9419bc3a
Commit
9419bc3a
authored
12 years ago
by
Dave Whipp
Browse files
Options
Downloads
Patches
Plain Diff
Removed unnecessary passing of strain
parent
d614eef3
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/compute_pressure.f90
+4
-5
4 additions, 5 deletions
src/compute_pressure.f90
src/make_pressure.f90
+2
-4
2 additions, 4 deletions
src/make_pressure.f90
src/pressure_cut.f90
+14
-19
14 additions, 19 deletions
src/pressure_cut.f90
with
20 additions
and
28 deletions
src/compute_pressure.f90
+
4
−
5
View file @
9419bc3a
...
...
@@ -34,9 +34,8 @@ subroutine compute_pressure (params,osolve,ov,vo,mat)
! mat is the material matrix for the nmat materials
! materialn contains the material number associated to each lsf
! u,v,w are the nodal velocities from the previous time step/iteration
! temp, pressure and strain are the nodal temperature, pressure and strain
! interpolated from the previous time step/iteration or, in the case of
! the strain, from the 3D cloud
! temp and pressure are the nodal temperature and pressure interpolated from the
! previous time step/iteration
! vo is the structure containing the information on where the void is
! levelcut is the maximum number of levels used for dividing cut cells
! levelapprox is used to improve the estimate of the positive volume
...
...
@@ -105,8 +104,8 @@ do ileaves=1+iproc,osolve%nleaves,nproc
call
pressure_cut
(
params
,
level
,
levelmax
,
osolve
%
icon
(
1
,
ileaves
),
&
osolve
%
x
,
osolve
%
y
,
osolve
%
z
,
mat
,
params
%
materialn
,
&
ov
%
unode
,
ov
%
vnode
,
ov
%
wnode
,
osolve
%
temp
,
press
(
ileaves
),&
osolve
%
strain
,
osolve
%
nnode
,
lsf_el
,
osolve
%
nlsf
,
r0
,
s0
,
&
t0
,
rst
,
icut
,
ileaves
,
osolve
%
eviscosity
(
ileaves
))
osolve
%
nnode
,
lsf_el
,
osolve
%
nlsf
,
r0
,
s0
,
t0
,
rst
,
icut
,
&
ileaves
,
osolve
%
eviscosity
(
ileaves
))
deallocate
(
lsf_el
)
endif
enddo
...
...
This diff is collapsed.
Click to expand it.
src/make_pressure.f90
+
2
−
4
View file @
9419bc3a
...
...
@@ -17,7 +17,7 @@
!------------------------------------------------------------------------------|
subroutine
make_pressure
(
params
,
icon
,
xg
,
yg
,
zg
,
viscosity0
,
penalty
,
expon
,
unode
,
&
vnode
,
wnode
,
temp
,
pressure
,
strain
,
nnode
,
r0
,
s0
,
t0
,
rst
,
&
vnode
,
wnode
,
temp
,
pressure
,
nnode
,
r0
,
s0
,
t0
,
rst
,
&
eviscosity
)
use
definitions
...
...
@@ -42,7 +42,6 @@ include 'mpif.h'
! unode,vnode,wnode is the velocity array (obtained from previous time step
! or at least containing the proper velocity at the fixed dofs)
! temp and pressure anre temperature and pressure
! strain is total accumulated strain as interpolated from the 3D cloud
! nnode is number of nodes
! r0,s0,t0 are the bottom left back corner of the part of the element
! we are now integrating (in local r,s,t coordinates)
...
...
@@ -61,7 +60,6 @@ double precision expon
double precision
unode
(
nnode
),
vnode
(
nnode
),
wnode
(
nnode
)
double precision
temp
(
nnode
)
double precision
pressure
double precision
strain
(
nnode
)
integer
nnode
double precision
r0
,
s0
,
t0
,
rst
double precision
eviscosity
...
...
@@ -71,7 +69,7 @@ double precision eviscosity
!------------------------------------------------------------------------------|
!integer nint
integer
iproc
,
nproc
,
ierr
,
ic
,
k
,
iint
,
err
double precision
viscosity
,
straintot
double precision
viscosity
double precision
exx
,
eyy
,
ezz
,
exy
,
eyz
,
ezx
,
E2d
,
E3d
double precision
f1
(
3
,
3
),
defgrad
(
3
,
3
)
double precision
detf1
,
detf
,
e2dref
,
viscomean
...
...
This diff is collapsed.
Click to expand it.
src/pressure_cut.f90
+
14
−
19
View file @
9419bc3a
...
...
@@ -17,9 +17,8 @@
!------------------------------------------------------------------------------|
recursive
subroutine
pressure_cut
(
params
,
level
,
levelmax
,
icon
,
x
,
y
,
z
,
mat
,
&
materialn
,
u
,
v
,
w
,
temp
,
pressure
,
strain
,
nnode
,
&
lsf
,
nlsf
,
r0
,
s0
,
t0
,
rst
,
icut
,
ileaves
,
&
eviscosity
)
materialn
,
u
,
v
,
w
,
temp
,
pressure
,
nnode
,
lsf
,
&
nlsf
,
r0
,
s0
,
t0
,
rst
,
icut
,
ileaves
,
eviscosity
)
!------------------------------------------------------------------------------|
!(((((((((((((((( Purpose of the routine ))))))))))))))))))))))))))))))))))))))
...
...
@@ -35,7 +34,7 @@ recursive subroutine pressure_cut (params,level,levelmax,icon,x,y,z,mat, &
! materialn contains the material number associated to each lsf
! u,v,w is the velocity array (obtained from previous time step
! or at least containing the proper velocity at the fixed dofs)
! temp
,
pressure
and strain
are temperature
,
pressure
and strain
! temp
and
pressure are temperature
and
pressure
! nnode is number of nodes
! lsf is global array of level set functions defining the surfaces
! nlsf is number of lsfs
...
...
@@ -62,7 +61,6 @@ integer,intent(in) :: materialn(0:nlsf)
double precision
,
intent
(
in
)
::
u
(
nnode
),
v
(
nnode
),
w
(
nnode
)
double precision
,
intent
(
in
)
::
temp
(
nnode
)
double precision
,
intent
(
inout
)
::
pressure
double precision
,
intent
(
in
)
::
strain
(
nnode
)
integer
,
intent
(
in
)
::
nnode
double precision
,
intent
(
in
)
::
lsf
(
params
%
mpe
,
nlsf
)
integer
,
intent
(
in
)
::
nlsf
...
...
@@ -115,18 +113,18 @@ do i=1,nlsf
if
(
matrule
.eq.
1
.or.
matrule
.eq.
2
)
then
! Use majority or minority rule
call
set_elem_props_pc
(
params
,
mat
,
matrule
,
nlsf
,
nnode
,
icon
,
level
,
&
materialn
,
vol_lsf
,
vol_lsf0
,
x
,
y
,
z
,
u
,
v
,
w
,
temp
,
&
pressure
,
strain
,
r0
,
s0
,
t0
,
rst
,
xmean
,
ymean
,
zmean
,&
pressure
,
r0
,
s0
,
t0
,
rst
,
xmean
,
ymean
,
zmean
,
&
eviscosity
)
else
! Use divFEM
if
(
level
.eq.
levelmax
)
then
call
set_elem_props_pc
(
params
,
mat
,
matrule
,
nlsf
,
nnode
,
icon
,
level
,
&
materialn
,
vol_lsf
,
vol_lsf0
,
x
,
y
,
z
,
u
,
v
,
w
,
temp
,
&
pressure
,
strain
,
r0
,
s0
,
t0
,
rst
,
xmean
,
ymean
,
&
zmean
,
eviscosity
)
pressure
,
r0
,
s0
,
t0
,
rst
,
xmean
,
ymean
,
zmean
,
&
eviscosity
)
else
call
divide_element_pc
(
params
,
mat
,
level
,
levelmax
,
nlsf
,
nnode
,
icon
,
&
ileaves
,
materialn
,
lsf
,
r0
,
s0
,
t0
,
rst
,
x
,
y
,
z
,
u
,
v
,&
w
,
temp
,
pressure
,
strain
,
eviscosity
)
w
,
temp
,
pressure
,
eviscosity
)
endif
endif
deallocate
(
vol_lsf
)
...
...
@@ -144,8 +142,8 @@ call mat_trans_pc(params,mat,matel,xmean,ymean,zmean)
if
(
icut
.eq.
0
)
then
call
make_pressure
(
params
,
icon
,
x
,
y
,
z
,
mat
(
matel
)
%
viscosity
,
mat
(
matel
)
%
penalty
,&
mat
(
matel
)
%
expon
,
u
,
v
,
w
,
temp
,
pressurep
,
strain
,
nnode
,
r0
,
s0
,
&
t0
,
rst
,
eviscosity
)
mat
(
matel
)
%
expon
,
u
,
v
,
w
,
temp
,
pressurep
,
nnode
,
r0
,
s0
,
t0
,
rst
,
&
eviscosity
)
pressure
=
pressure
+
pressurep
/(
8.d0
**
level
)
endif
...
...
@@ -207,8 +205,7 @@ end subroutine get_mat_volume_pc
subroutine
set_elem_props_pc
(
params
,
mat
,
matrule
,
nlsf
,
nnode
,
icon
,
level
,
&
materialn
,
vol_lsf
,
vol_lsf0
,
x
,
y
,
z
,
u
,
v
,
w
,
temp
,
&
pressure
,
strain
,
r0
,
s0
,
t0
,
rst
,
xmean
,
ymean
,
zmean
,
&
eviscosity
)
pressure
,
r0
,
s0
,
t0
,
rst
,
xmean
,
ymean
,
zmean
,
eviscosity
)
use
definitions
...
...
@@ -227,7 +224,6 @@ double precision,intent(in) :: vol_lsf0
double precision
,
intent
(
in
)
::
x
(
nnode
),
y
(
nnode
),
z
(
nnode
)
double precision
,
intent
(
in
)
::
u
(
nnode
),
v
(
nnode
),
w
(
nnode
)
double precision
,
intent
(
in
)
::
temp
(
nnode
)
double precision
,
intent
(
in
)
::
strain
(
nnode
)
double precision
,
intent
(
in
)
::
r0
,
s0
,
t0
,
rst
double precision
,
intent
(
in
)
::
xmean
,
ymean
,
zmean
double precision
,
intent
(
in
)
::
eviscosity
...
...
@@ -287,7 +283,7 @@ case default
end
select
call
make_pressure
(
params
,
icon
,
x
,
y
,
z
,
viscosity
,
penal
,
expon
,
u
,
v
,
w
,
temp
,
&
pressurep
,
strain
,
nnode
,
r0
,
s0
,
t0
,
rst
,
eviscosity
)
pressurep
,
nnode
,
r0
,
s0
,
t0
,
rst
,
eviscosity
)
pressure
=
pressure
+
pressurep
/(
8.d0
**
level
)
...
...
@@ -297,7 +293,7 @@ end subroutine set_elem_props_pc
subroutine
divide_element_pc
(
params
,
mat
,
level
,
levelmax
,
nlsf
,
nnode
,
icon
,
ileaves
,&
materialn
,
lsf
,
r0
,
s0
,
t0
,
rst
,
x
,
y
,
z
,
u
,
v
,
w
,
temp
,
&
pressure
,
strain
,
eviscosity
)
pressure
,
eviscosity
)
use
definitions
...
...
@@ -317,7 +313,6 @@ double precision,intent(in) :: r0,s0,t0,rst
double precision
,
intent
(
in
)
::
x
(
nnode
),
y
(
nnode
),
z
(
nnode
)
double precision
,
intent
(
in
)
::
u
(
nnode
),
v
(
nnode
),
w
(
nnode
)
double precision
,
intent
(
in
)
::
temp
(
nnode
)
double precision
,
intent
(
in
)
::
strain
(
nnode
)
double precision
,
intent
(
in
)
::
eviscosity
double precision
,
intent
(
inout
)
::
pressure
...
...
@@ -375,8 +370,8 @@ do kk=1,2
levelp
=
level
+1
call
pressure_cut
(
params
,
levelp
,
levelmax
,
icon
,
x
,
y
,
z
,
mat
,
materialn
,
u
,
&
v
,
w
,
temp
,
pressure
,
strain
,
nnode
,
lsfp
,
nlsf
,
r0p
,
s0p
,
&
t0p
,
rstp
,
jcut
,
ileaves
,
eviscosity
)
v
,
w
,
temp
,
pressure
,
nnode
,
lsfp
,
nlsf
,
r0p
,
s0p
,
t0p
,
rstp
,
&
jcut
,
ileaves
,
eviscosity
)
enddo
enddo
enddo
...
...
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