fini
/CLEAR,START
!
!#######################################################################
!#                                                                     #
!#    Balken mit Biegebelastung und Zwischenlager                      #
!#                                                                     #
!#    Kontaktanalyse - Gap-Element CONTA178                            #
!#                                                                     #
!#######################################################################
!
!
/filnam,nlfem6-1
/title, Balken
!Preprozessing
/prep7

! Materialdaten
! Hooke
MP,EX,1,210000
MP,PRXY,1,.3

!tb,bkin
!Fliessgrenze,Tangentenmodul
!tbdat,1,235,2000

! Elementtyp: 8-Knoten Viereck
et,1,plane183
! Ebener Spannungszustand mit Dicke
keyopt,1,3,3
! Dicke auf 30 setzen
thickness=30
R,1,thickness

! Gapelement:CONTA178
! Realkonstanten für Gap-Element: Initial Gap = 0
! mit KEYOPT(4)=0 und Initial_Gap=0 wird der Anfangsabstand automatisch berechnet
et,2,conta178,,,,0
r,2,,0

! Druckkraft
force=5000

! Hoehe und Breite
height = 30
length = 800

! Anzahl der Elemente in Hoehen und Laenge-richtung
h_nr_elems = 5
w_nr_elems = 20 

! Eckpunkte des Gesamtbereichs anlegen
k,1,0,0,0
k,2,length,0,0
k,3,length,height
k,4,0,height

! Definition der Flaeche
a,1,2,3,4

! Definition der Anzahl Elemente die an den Kanten verwenden werden sollen
lsel,s,loc,y,0      	! untere Kante
lsel,a,loc,y,height		! und obere kante
lesize,all,,,w_nr_elems	! Anzahl der zu verwendenen Elemente in Breitenrichtung
lsel,s,loc,x,0			! linke Kante
lsel,a,loc,x,length		! und rechte Kante
lesize,all,,,h_nr_elems	! Anzahl der zu verwendenen Elemente in Hoehenrichtung

! Vernetzen
amap,1,1,2,3,4

nsel,s,loc,x,400        ! selektiert Knoten bei (0,400)
nsel,r,loc,y,0   
node_400=ndnext(0)  ! speichert die Nummer des Knotens

nsel,s,loc,x,800        ! selektiert Knoten bei (0,800)
nsel,r,loc,y,0   
node_800=ndnext(0)  ! speichert die Nummer des Knotens

nsel,all            ! Anzahl aller Knoten ermitteln
*GET,numnodes,NODE,0,COUNT

node_gap = numnodes +1
n,node_gap,400,-10.0    ! weiteren Knoten 2 mm unter dem Balken erzeugen
type,2          ! Elementtyp 2 (Gapelement) auswählen
real,2
e,node_400,node_gap  ! die beiden Knoten mit einem Element verbinden

fini

!*************************** Loesungsteil ***************************

/solu
! Randbedingungen anlegen
nsel,s,loc,x,0		! linke Kante
d,all,ux,0 		    ! ux = 0
d,all,uy,0 		    ! uy = 0

! Den Kontaktknoten festhalten
nsel,s,,,node_gap
d,all,ux,0
d,all,uy,0

! Linienlast
nsel,s,loc,y,height	! obere kante
nsel,r,loc,x,length*0.90,length
! kein Vorzeichen, weil die Richtung schon durch die Oberflaeche vorgegeben ist
sf,all,pres,force/(thickness*length*0.1)
sbctran

! Grosse Verformungen
nlgeom,on

allsel

! Unterteilt in 20 Unterschritte
nsubst,20,20,20
outres,all,all  ! alle Ergebnisse abspeichern

solve

!*************************** Postprocessing ***************************
/post1
! Anzeigen des verformten Körpers und der unverformten Kontur
/dscale,,1
pldisp,2

/post26
nsol,2,node_400,u,y     ! Speichert die Verschiebung bei x=400mm ueber der Zeit auf Feld 2
plvar,2

nsol,3,node_800,u,y     ! Speichert die Verschiebung bei x=800mm ueber der Zeit auf Feld 3
plvar,3

rforce,4,node_gap,f,y,fyy     ! Speichert die Spannung ueber der Zeit auf Feld 4
plvar,4

fini