FEAP User Forum
FEAP => Programming => Topic started by: hamza on September 21, 2022, 07:32:27 AM
-
Dear Feap users,
I have a case with 3 nodal degrees of freedom and 8-noded elements. So the values of the 3x8 nodal degrees of freedom at current time step tn+1 are stored in the ul array in 3 rows and first 8 columns. Now I want to access the third degree of freedom at all 8 nodes for the previous time step tn. According to FEAP programmers manual, the dimensions of ul array are ul(ndf,nen,j). In my case ndf=3 and nen=8. The manual also states that when j=1, we have the nodal values at the current time step tn+1 and when j=2, the ul array stores the increment un+1-un, the difference between the values at the current and previous time step. So in order to access the values of the third nodal dof at time tn, I proceed as follows:
do i=1,8
value(i)=ul(3,i)-ul(3,i+nel)
enddo
However, by doing so I get the values of the required dof at the previous iteration of the current time step tn+1 instead of converged value of the required dof at the previous time step tn.
Any help here is greatly appreciated.
-
To get the value of the previous converged time step at dof=d and node=n use
ul(d,n,1)-ul(d,n,2)
-
You need to add the include for cdata.h and dimension the ul array as
include 'cdata.h'
real (kind=8) :: ul(ndf,nen,*)
to do the step proposed by Professor Govindjee. This should give the values you want unless you have somehow modified FEAP in a way that the values in the ul array are not correct.
-
Thank you very much