FEAP User Forum
FEAP => FE^2 => Topic started by: Paolo Di Re on January 29, 2019, 09:07:56 AM
-
Dear All,
I'm trying to compute average properties of an RVE using the command "PERIodic CAUChy FILE" and "HILL READ" + "HILL CLOSE", as indicated at page 68 of the user manual (FEAP version 85), but the commands seem not to work. This is what I'm doing exactly:
1 - I have run a FE2 analysis of a linear elastic homogeneous cube using 3D solids at the macro-scale; the RVE is a linear elastic homogeneous cube as well (it's just a benchmark). Everything considers small strains. I have used the command "RVE POINT nn" to obtained the file "F_nn" with the strain history of the nn-th RVE.
2 - I have renamed the "F_nn" file as "RVEHist.txt", here attached.
3 - I have prepared the attached input file "iRVE_PostwHistFileManual.txt" to be run with a serial version of FEAP. This contains the command:
PERIodic CAUChy FILE
RVEHist.txt
during the mesh definition, and the solution is performed as:
MACRO
DT,,0.1
TOL,ENER,1e-12
LOOP,Time,10
TIME
HILL READ
LOOP,,50
TANG,,1
NEXT
HILL STRESS
NEXT
HILL CLOSE
END
As you can see from the output file, FEAP reads the strains contained in the file, but the average stresses are always zero and no plot is performed.
It looks like it is not actually passing the strains to the elements.
What am I doing wrong?
Thank you in advance for your help.
Paolo
-
There is a bug in the file input. In subroutine pmacr1.f the input of each record is loaded into gradu in stead of gradu0 -- it needs to be changed in several lines to read:
if(.not.exst) then
open(unit=97, file=perifile, access='sequential')
endif
if(finflg) then ! Load from deformation gradient
read(97,*,end=8000) (td(i),i=1,10)
kk = 1
do j = 1,3
do i = 1,3
kk = kk + 1
gradu0(i,j) = td(kk)
end do ! i
end do ! j
grdbarn(:,:) = grdbar(:,:)
else ! Load from strains
read(97,*,end=8000) (td(i),i=1,7)
do i = 1,3
gradu0(i,i) = td(i+1)
end do ! i
gradu0(1,2) = td(5)*0.5d0
gradu0(2,1) = gradu0(1,2)
gradu0(2,3) = td(6)*0.5d0
gradu0(3,2) = gradu0(2,3)
gradu0(3,1) = td(7)*0.5d0
gradu0(1,3) = gradu0(3,1)
epsbarn(:) = epsbar(:)
endif
ttim = td(1)
write(iow,2031) ttim
call mprint(gradu0,3,3,3,'GRAD U')
endif
-
Dear Prof. Taylor,
thank you very much for your quick answer.
It fixed the issue.
Best regards,
Paolo