Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations cowski 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