Q1) How can I plot a nodal solution of safety factors for different materials having different yield strengths? The element table values are centroidal values, so these are not accurate enough for my situation. The SALLOW and SFACT and related commands do not allow for multiple materials having different yield strengths.

A1) One way to accomplish this is to create a macro, get stresses, manipulate values, then put stresses back into the database. Please note that Full graphics (/GRAPH,FULL) is required, and plotting/listing is only available immediately afterwards - for example, selection commands will reset these values to the original stress values.

The following input file demonstrates the aforementioned technique, and vector commands are taken advantage of for efficiency reasons.

!----------------------------------------
! Put safety factors for different materials
!
! Two cantilever plates subject to pressure loading
! Assume both plates have different yield strength
! Plot factors of safety for both
!
! Assume 1 plate has 10e3, another 20e3
!
! Use *VPUT to modify SEQV values (could use DNSOL)
! Need to use Full graphics to display
!----------------------------------------
finish
/clear

!----------------------------------------
! Graphics settings
! /GRAPH,FULL is important
!----------------------------------------
/graph,full
/vup,1,z
/view,1,1,2,3
/auto
/triad,off
/plopt,minm,off

/prep7
et,1,63
r,1,0.1
mp,ex,1,10e6
mp,nuxy,1,0.3

rectng,,10,,10

rectng,20,30,,10

esize,,5
amesh,all

d,all,uz

lsel,s,loc,y,0
nsll,s,1
d,all,uy

lsel,s,loc,x,0
lsel,a,loc,x,20
nsll,s,1
d,all,ux

lsel,s,loc,y,10
nsll,s,1
sf,all,pres,1000

allsel,all
/solu
solve
finish

/post1
set,last
shell,top
/title,Original SEQV distribution
plnsol,s,eqv
/wait,3

*get,AR20,node,,num,max
*dim,STI_MASK1,array,AR20
*dim,STI_MASK2,array,AR20
*dim,STI_STRSS,array,AR20

!----------------------------------------
! Get masking vectors
!----------------------------------------


Q1) How can I plot a nodal solution of safety factors for different materials having different yield strengths? The element table values are centroidal values, so these are not accurate enough for my situation. The SALLOW and SFACT and related commands do not allow for multiple materials having different yield strengths.

A1) One way to accomplish this is to create a macro, get stresses, manipulate values, then put stresses back into the database. Please note that Full graphics (/GRAPH,FULL) is required, and plotting/listing is only available immediately afterwards - for example, selection commands will reset these values to the original stress values.

The following input file demonstrates the aforementioned technique, and vector commands are taken advantage of for efficiency reasons.

!----------------------------------------
! Put safety factors for different materials
!
! Two cantilever plates subject to pressure loading
! Assume both plates have different yield strength
! Plot factors of safety for both
!
! Assume 1 plate has 10e3, another 20e3
!
! Use *VPUT to modify SEQV values (could use DNSOL)
! Need to use Full graphics to display
!----------------------------------------
finish
/clear

!----------------------------------------
! Graphics settings
! /GRAPH,FULL is important
!----------------------------------------
/graph,full
/vup,1,z
/view,1,1,2,3
/auto
/triad,off
/plopt,minm,off

/prep7
et,1,63
r,1,0.1
mp,ex,1,10e6
mp,nuxy,1,0.3

rectng,,10,,10

rectng,20,30,,10

esize,,5
amesh,all

d,all,uz

lsel,s,loc,y,0
nsll,s,1
d,all,uy

lsel,s,loc,x,0
lsel,a,loc,x,20
nsll,s,1
d,all,ux

lsel,s,loc,y,10
nsll,s,1
sf,all,pres,1000

allsel,all
/solu
solve
finish

/post1
set,last
shell,top
/title,Original SEQV distribution
plnsol,s,eqv
/wait,3

*get,AR20,node,,num,max
*dim,STI_MASK1,array,AR20
*dim,STI_MASK2,array,AR20
*dim,STI_STRSS,array,AR20

!----------------------------------------
! Get masking vectors
!----------------------------------------
asel,s,area,,1
allsel,below,area
*vget,STI_MASK1(1),node,,nsel
asel,s,area,,2
allsel,below,area
*vget,STI_MASK2(1),node,,nsel
allsel,all

!----------------------------------------
! Get stresses
!----------------------------------------
*vmask,STI_MASK1(1)
*vget,STI_STRSS(1),node,,s,eqv
*vmask,STI_MASK2(1)
*vget,STI_STRSS(1),node,,s,eqv

!----------------------------------------
! Calculate SF
!----------------------------------------
*vmask,STI_MASK1(1)
*vfact,10000,1
*vfun,STI_STRSS(1),pwr,STI_STRSS(1),-1
*vmask,STI_MASK2(1)
*vfact,20000,1
*vfun,STI_STRSS(1),pwr,STI_STRSS(1),-1

!----------------------------------------
! Put values back into database
!----------------------------------------
*vmask,STI_MASK1(1)
*vput,STI_STRSS(1),node,,s,eqv
*vmask,STI_MASK2(1)
*vput,STI_STRSS(1),node,,s,eqv

/title,Plotting safety factor
plnsol,s,eqv





Show Form
No comments yet. Be the first to add a comment!