Up
##
##
  head 1 Calculation of effective conicity according to UIC 518
  head 2 Wheel-rail geometry file=G_kpfr/kpf.kpfr
##
##
## Parameters for different types of analysis
## ------------------------------------------
  idebug = 0
  fresp_param=Fourier_CG1    1.e-4  fstart=.2   fstop=20. fstep=-1.05
  modal_param=Schur_fact1    1.e-4
  quasi_param=LineSearch_2   1.e-6 1.e-6 0.005 1e-5  60 100
  tsim_param =heun_u .4 .002 tstart=0. tstop=1000.02 tstep=0.001 tout=0.020
#
   func	  const	    ro1	       0.45

##
## Define variables variables Vo, mu and bo
## ----------------------------------------
  func const    vkmh=  10        # Speed of vehicle in km/h
  func div_init  Vo =  vkmh 3.6  # Speed of vehicle in m/s
  func const     mu =  10        # Coefficient of friction between wheel and rail
  func const     bo =  0.75      # Lateral distance between track center line and
                                 # nominal rolling circle of the wheel
  func const mulfact_nux = 1.
  func const mulfact_nuy = 1.
  func const mulfact_spin= 1.

##
## Define designed track geometry
## ------------------------------
   func	  intpl_r   krok_R	0 0   200 0
   func	  intpl_r   krok_h	0 0   200 0
   func	  intpl_r   krok_z	0 0   200 0

##
## Narrow or wide track
## -----------------------
#  func const gauge_average=1435.    # Set the average gauge of the track
   func const gauge_average=0.       # Set the average gauge of the track
#
#  func const gauge_dev=-0.010  #-10 mm narrower track
#  func const gauge_dev=-0.008  # -8 mm narrower track
#  func const gauge_dev=-0.004  # -4 mm narrower track
   func const gauge_dev= 0.000  #  Do not change the gauge of the track
#  func const gauge_dev= 0.004  #  4 mm wider track
#  func const gauge_dev= 0.006  #  6 mm wider track

##
## Define track irregularities
## ---------------------------
   func	  intpl_r   lat_trac	  -200 0.   0 0.
   func	  intpl_r   spv_trac	  -200 0.   0 0.
   func	  intpl_r   vert_trac	  -200 0.   0 0.
   func	  intpl_r   fi_trac	  -200 0.   0 0.

##
##  Factors controling track irregularities.
##  ----------------------------------------
   func	  const	    YMtrac  0.001
   func	  const	    SVtrac  0.001
   func	  const	    ZMtrac  0.001
   func	  const	    FItrac  0.00066666667

##
##  Read the wheel-rail geometry file
##  ---------------------------------
   insert file $genkpf/S1002_bv50i30.kpfr
   in_substruct kpf_S1002_bv50i30 [ 111 ]

##
##  Create coordinate systems and masses.
##  -------------------------------------
  lsys	 e_abs_bend  esys     Vo    0. krok_R krok_h krok_z
  lsys	 l_local     lsa_111  esys  0. 0. 0.
#
  mass	m_rigid_6    car_1    lsa_111	0. 0. -ro1  1887 1887 1887  720	 100  720
  mass	m_rigid_6    axl_111  lsa_111	0. 0. -ro1  1887 1887 1887  720	 100  720
  mass	m_rigid_6    trc_111  lsa_111	0. 0. 0.    1.e3 1.e3 1.e3 1.e3 1.e3 1.e3
  mass	fixpoint_6   grd_111  lsa_111	0. 0. 0.
  body	w_set_lsys   axl_111  lsa_111  .45 .75
  body	figure_lsys  trc_111  lsa_111	1 5   .5 1 0  .5 -1 0	-.5 -1 0  -.5 1 0  .5 1 0

##
##	Calculate creep and creepforces.
##	--------------------------------
  func  const   knwr1.F0  77357.5 
  func  intpl_r knwr1_r
   -1.57     42e6
    0.      180e6
    1.57     42e6
##
  func  intpl_r cnwr1_r
   -1.57    60e3
    0.     250e3
    1.57    60e3
#
  insert file $gensys/calc/insert_files/wr_coupl_ne1.ins
  in_substruct wr_coupl [ 1 111 ]

##
##  Set lateral constraints to mass trc_111.
##  ----------------------------------------
   constr fix_rigid_1 trc_111  y 0.

##
##  Apply vertical force on the axle
##  --------------------------------
  coupl p_lin pkz  -77357.5 0.
#
  coupl k kzbar  grd_111 0  1. -ro1  axl_111 0  1. -ro1 pkz esys z
  coupl k kzbal  grd_111 0 -1. -ro1  axl_111 0 -1. -ro1 pkz esys z

##
##  Apply lateral offset to the axle
## --------------------------------
  func const init_ampl= 3.e-3
  initval    set_mass    axl_111     y     init_ampl

##
##  Store variables for later postprocessing in MPLOT.
##  --------------------------------------------------
  s_var sngl axl_111.x
  s_var sngl axl_111.y
  s_var sngl axl_111.z
  s_var sngl axl_111.f
  s_var sngl axl_111.k
  s_var sngl axl_111.p
#
  s_var sngl axl_111.vx
  s_var sngl axl_111.vy
  s_var sngl axl_111.vz
  s_var sngl axl_111.vf
  s_var sngl axl_111.vk
  s_var sngl axl_111.vp
#
  s_var sngl axl_111.Fx
  s_var sngl axl_111.Fy
  s_var sngl axl_111.Fz
  s_var sngl axl_111.Mf
  s_var sngl axl_111.Mk
  s_var sngl axl_111.Mp
#
  s_var sngl trc_111.x    s_var sngl trc_111.y   s_var sngl trc_111.z
  s_var sngl trc_111.f    s_var sngl trc_111.k   s_var sngl trc_111.p
  s_var sngl trc_111.vx   s_var sngl trc_111.vy  s_var sngl trc_111.vz
  s_var sngl trc_111.vf   s_var sngl trc_111.vk  s_var sngl trc_111.vp
#
  s_var sngl cp_111r.eta  s_var sngl cp_111l.eta
#
  s_var sngl tral111r.y   s_var sngl tral111l.y
  s_var sngl tral111r.z   s_var sngl tral111l.z
  s_var sngl tral111r.vy  s_var sngl tral111l.vy
  s_var sngl tral111r.vz  s_var sngl tral111l.vz

  s_var sngl cpt_111r.z   s_var sngl cpt_111l.z
  s_var sngl cpt_111r.dr  s_var sngl cpt_111l.dr
  s_var sngl cpt_111r.gam s_var sngl cpt_111l.gam
  s_var sngl cpt_111r.c	  s_var sngl cpt_111l.c
  s_var sngl cpt_111r.a/b s_var sngl cpt_111l.a/b
#
  s_var sngl lsa_111.pn
#
  s_var sngl cpt_111r.nux    s_var sngl cpt_111l.nux
  s_var sngl cpt_111r.nuy    s_var sngl cpt_111l.nuy
  s_var sngl cpt_111r.spin   s_var sngl cpt_111l.spin
#
  s_var sngl cpt_111r.Fx
  s_var sngl cpt_111l.Fx
  s_var sngl cpt_111r.Fy
  s_var sngl cpt_111l.Fy
  s_var sngl cpt_111r.Fz
  s_var sngl cpt_111l.Fz
  s_var sngl cpt_111r.Fn
  s_var sngl cpt_111l.Fn
  s_var sngl cpt_111r.Fny
  s_var sngl cpt_111l.Fny
#

##
##  Store scalars for later postprocessing in MPLOT.
##  ------------------------------------------------
  s_var scalar_0 init_ampl
  s_var scalar_0 gauge_dev
  s_var scalar_0 lsa_111.b  s_var scalar_0 bo
  s_var scalar_0 Vo	    s_var scalar_0 ro1
#
  s_var scalar_0 cpt_111r.gam
  s_var scalar_0 cpt_111l.gam
#
  s_var scalar_0 cpt_111r.Fx
  s_var scalar_0 cpt_111l.Fx
  s_var scalar_0 cpt_111r.Fy
  s_var scalar_0 cpt_111l.Fy
  s_var scalar_0 cpt_111r.Fz
  s_var scalar_0 cpt_111l.Fz
  s_var scalar_0 cpt_111r.Fny
  s_var scalar_0 cpt_111l.Fny
#
 if_then lsa_111.pn .gt. 40
  func stop
 endif
#
 eof