Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

VUSDFLD CHECK

Status
Not open for further replies.

SKSA

Civil/Environmental
Feb 28, 2024
33
HI,
I am willing to write a VUSDFLD subroutine where the Angle of internal friction (Phi) and Dilation angle will be vary with strain. I am attaching the photo for better understanding. Now can you please check whether my subroutine is okay or not? I will be very grateful to you.
22_tftsii.png


Here is my subroutine,

c Get volume fraction from previous increment
jStatus = 1
call vgetvrm('EVF',rdata,jData,cData,jStatus)
c Storing EVF data
do k = 1, nblock ,1
stateNew(k,3) = rdata(k)
c write(*,*) stateNew(k,1)
end do
call vgetvrm('PEEQ',rdata,jData,cData,jStatus)
do k = 1, nblock ,1
stateOld(k,1) = rdata(k)
stateOld(k,2)= rdata(k)
c write(*,*) stateNew(k,1)
end do
c
DO k = 1, nblock
C CENTER OF COORDINATE SYSTEM
PHIM=30.0
PHIC=25.0
XGAMAF=20.0
XAIM=0.0
XAIR=0.0
C CALCULATE ANGLE OF INTERNAL FRICTION AND DILATION ANGLE
stateNew(k,1) = stateOld(k,1)
stateNew(K,2) = stateOld(k,2)
PHI=stateOld(K,1)
XAI=stateOld(K,2)
IF (stateOld(K,1) .GE. 0.0D0 .AND. stateOld(K,1) .LE. XGAMAF) THEN
PHIMOB=PHIM-((PHIM-PHIC)/XGAMAF)*stateNew(K,1)
XAIMOB=XAIM*(1.0D0-(stateNew(K,1)/XGAMAF))
ELSE
PHIMOB=PHIC
XAIMOB=XAIR
END IF
C

FIELD(K,1)=PHIMOB
FIELD(K,2)=XAIMOB
C SAVE THE NEW STATE VARIABLES
stateNew(K,1)=FIELD(K,1)
STATENEW(K,2)=FIELD(K,2)
ENDDO
 
Replies continue below

Recommended for you

The best way to verify subroutines is to run simple test analyses. In the case of subroutines defining material behavior, single-element tests are usually the way to go. They can be based on the examples from the Verification guide in the documentation.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor