User login

Navigation

You are here

Advanced Ansys on Fracture and others

Dear alls,

 I am intersting in computational mechanics and now post some references which relate to ansys.

May be you know command KSCON, which is use for make concentration mesh at crack tip. I known how to use this command but very intersting its Ansys APDL code. So I am looking Ansys APDL code for KSCON command. If anybody know code fot that command, could you please send me?

Thank you.

Chau Nguyen

set lstbarID {100 200 300 400 500 600 700 800 900 1000}
set lstNod1 {1 3 15 6 7 10 9 13 2 16 16}
set lstNod2 {2 5 14 9 8 11 12 14 4 17 18}
set flag {0 0 0 0 0 0 0 0 0 0}

set lenbarID [llength $lstbarID]
for {set i 0} {$i <= $lenbarID} {incr i} {
 if {[lsearch $lstNod2 [lindex $lstNod1 $i]] != -1 || [lsearch $lstNod1 [lindex $lstNod2 $i]] != -1 || [lsearch [lreplace $lstNod1 $i $i] [lindex $lstNod1 $i]] != -1 || [lsearch [lreplace $lstNod2 $i $i] [lindex $lstNod2 $i]] != -1} {
      puts "3layer [lindex $lstNod1 $i]"
      puts "3layer [lindex $lstNod2 $i]"
 } else {
      puts "2layer [lindex $lstNod1 $i]"
      puts "2layer [lindex $lstNod2 $i]"
 }
}

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

set lstbarID {100 200 300 400 500 600 700 800 900 1000 1100 1200}
set lstNod1 {1 3 15 6 7 10 9 13 2 16 16 19}
set lstNod2 {2 5 14 9 8 11 12 14 4 17 18 20}
puts "================================"
set lst [list]

set lenbarID [llength $lstbarID]
for {set i 0} {$i < $lenbarID} {incr i} {
 if {[lsearch $lstNod2 [lindex $lstNod1 $i]] != -1 || [lsearch $lstNod1 [lindex $lstNod2 $i]] != -1 || [lsearch [lreplace $lstNod1 $i $i] [lindex $lstNod1 $i]] != -1 || [lsearch [lreplace $lstNod2 $i $i] [lindex $lstNod2 $i]] != -1} {
      set lst00 [lindex $lstbarID $i]
      if {[lsearch $lst $lst00] != -1} {
         continue
      } else {
         #puts "3layer $lst00"
         lappend lst $lst00
      }
     
      if {[lsearch $lstNod2 [lindex $lstNod1 $i]] != -1} {
          set lst21 [lindex $lstbarID [lsearch $lstNod2 [lindex $lstNod1 $i]]]
          if {[lsearch $lst $lst21] != -1} {
              continue
          } else {
              #puts "3layer $lst21"
              lappend lst $lst21
          }
      }
      if {[lsearch $lstNod1 [lindex $lstNod2 $i]] != -1} {
          set lst12 [lindex $lstbarID [lsearch $lstNod1 [lindex $lstNod2 $i]]]
          if {[lsearch $lst $lst12] != -1} {
              continue
          } else {
              #puts "3layer  $lst12"
              lappend lst $lst12
          }
      }
      if {[lsearch [lreplace $lstNod1 $i $i] [lindex $lstNod1 $i]] != -1} {
          set lst11 [lsearch [lreplace $lstNod1 $i $i] [lindex $lstNod1 $i]]
          if {$i <= $lst11} {
             set lst111 [lindex $lstbarID [expr $lst11 + 1]]
             if {[lsearch $lst $lst111] != -1} {
                 continue
             } else {
                 #puts "3layer $lst111"
                 lappend lst $lst111
             }
          } else {
             set lst112 [lindex $lstbarID $lst11]
             if {[lsearch $lst $lst112] != -1} {
                 continue
             } else {
                 #puts "3layer $lst112"
                 lappend lst $lst112
             }
          }
      }
      if {[lsearch [lreplace $lstNod2 $i $i] [lindex $lstNod2 $i]] != -1} {
          set lst22 [lsearch [lreplace $lstNod2 $i $i] [lindex $lstNod2 $i]]
          if {$i <= $lst22} {
             set lst221 [lindex $lstbarID [expr $lst22 + 1]]
             if {[lsearch $lst $lst221] != -1} {
                 continue
             } else {
                 #puts "3layer $lst221"
                 lappend lst $lst221
             }
          } else {
             set lst222 [lindex $lstbarID $lst22]
             if {[lsearch $lst $lst222] != -1} {
                 continue
             } else {
                 #puts "3layer [lindex $lstbarID $lst22]"
                 lappend lst $lst222
             }
          }
      }
      #puts $lst
 } else {
      #puts "2layer [lindex $lstNod1 $i]"
      #puts "2layer [lindex $lstNod2 $i]"
 }
}

set lenlst [llength $lst]
for {set i 0} {$i < $lenlst} {incr i} {
   puts "3Layers [lindex $lst $i][lindex $lst [expr $i + 1]]"
   puts [lindex $lst $i]
   puts [lindex $lst [expr $i + 1]]
   incr i
}

AttachmentSize
PDF icon AdvacedAnsys.pdf2.91 MB
PDF icon AdvancedFractureAnsys.pdf964.62 KB

Comments

DEAR mr Nguyen Van Chau

The format of the command is the following

 kscon,npt,delr,kctip,nthet,rrat

if you want to understand the meaning of each parameter then you have to go to ansys documentation in the commands ,type kscon and you will find the paragraph which explains the parameters

Thank  agg E.kalimeris for your reply,

I am looking the KSCON code, I mean for example, if I am writting Abaqus python code for the command which is same command KSCON in Ansys, when we picking a point, input some parameters (npt,delr,kctip,nthet,rrat), click Ok button, the concentration mesh at selected point will be made when we mesh for all model.

Could you help me,

Thanks,

Chau

Mr. Nguyen Van Chau 

 

This explanation from ANSYS help may be useful to understand KSCON.

Best Regards,

Mehmet.

 

KSCON,
NPT, DELR, KCTIP, NTHET,
RRAT

Specifies a keypoint
about which an area mesh will be skewed.

PREP7: Meshing

MP ME ST PR PRN <> <> FL EM <>
<> PP <>

NPT

Keypoint
number at concentration. If NPT =
ALL, use all selected keypoints. If remaining fields are blank, remove
concentration
from this keypoint (if unmeshed). If NPT = P,
graphical picking is enabled and all remaining command fields are
ignored
(valid only in the GUI). A component name may also be substituted for NPT.

DELR

Radius of
first row of elements about keypoint.

KCTIP

Crack
tip singularity key:

0

 — 

Do not skew midside nodes, if any, within
the
element.

1

 — 

Skew midside nodes of the first row of elements
to the 1/4 point for crack tip singularity.

NTHET

Number of
elements in circumferential direction (defaults
to approximately one per 45° (or one per 30°, if KCTIP =
1)).

RRAT

Ratio
of 2nd row element size to DELR (defaults
to 0.75, or 0.5 if KCTIP = 1).


Notes

Defines a concentration keypoint about which an
area mesh will be skewed.
Useful for modeling stress
concentrations and crack tips. During meshing,
elements are initially generated
circumferentially about, and radially away,
from the keypoint. Lines attached to the keypoint
are given appropriate divisions
and spacing ratios. Only one concentration keypoint per unmeshed area is
allowed.
Use KSCON,STAT to list current status of
concentration
keypoints. The KSCON command does not support 3-D modeling.

This
command is also valid for rezoning.

Menu Paths 

Main
Menu>Preprocessor>Meshing>Size Cntrls>Concentrat
KPs>Create

Main
Menu>Preprocessor>Meshing>Size Cntrls>Concentrat KPs>List

 

Hi,

I'm also trying to model crack propagation using ANSYS software in my
thesis.

 I've got a question concerning crack tip mesh. I'm modeling eliptic
surface crack in a plate using CTMOPT macro and KSCON commant but I face
some issues.

First of all CTMOPT is ok but I don't have any control on crack
sourronding cube so in fact I can't propagate my crack really deep. The
cube like sructure lines and areas intersect with base plate areas. What
is more i have no clue how to use this macro to create through crack
but with crack tip nodes laying on spline.

This problem is solved when I do mesh manually.

I sweept mesch along eliptic line (or any other line)  from 2D mesh but I
can't guess how to increase number of layers above 2. So KSCON gives me
two rows of mapped elements in radial direction but I'd like to have at
least 4.

I saw codes using elements generated on nodes, but it's not comfortable
solution as I don't know how to create area from elements. 

Please give me a tip how to increase number of layers in radial
direction.

 

Kind Regards

mw

Subscribe to Comments for "Advanced Ansys on Fracture and others"

Recent comments

More comments

Syndicate

Subscribe to Syndicate