Eng-Tips is the largest forum for Engineering Professionals on the Internet.

Members share and learn making Eng-Tips Forums the best source of engineering information on the Internet!

  • Congratulations JStephen 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
Joined
Feb 28, 2024
Messages
34
Location
CA
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
 
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

Back
Top