Tutorial

Normal simulation procedure

  • Obtain an appropriate sample UDF file for your purpose from our examples.
  • Start "Gourmet" and open the UDF file. Modify it for your own purpose and save it as "input.udf".
  • Run KAPSEL as follows. (remove "./" if you use Windows command prompt)
   > ./kapsel -Iinput.udf -Ooutput.udf -Ddefine.udf -Rrestart.udf
  • "-I" option defines the name of UDF file which contains details of simulation (type of simulation, initial conditions, physical and simulation parameters, etc...).
  • "-O" option defines the name of UDF file which contains the results (time-dependent positions and velocities of all the particles, etc...) of the simulation.
  • "-D" option defines the name of UDF file which contains definitions of KAPSEL data dormat. This is common for any simulations.
  • "-R" option defines the name of UDF file which contains values of all dynamical variables at the end of the simulation See "Re-start run" below.
  • Field data (fluid velocities, ionic densitied, etc...) is saved in a subdirectory specified in "input.udf" if "output.AVS" = "on". This requires huge disk space (GB order). No field data is saved if "output.AVS" = "off".
  • Start "Gourmet" and open "output.udf".
    • Instantaneous positions and velocities of all the particles can be seen as variables in "Particles[]". Use slide bar at the bottom of Gourmet window to see variables at different time steps.
    • Load "plot.py" to plot time evolutions of the variables. (See STEP4)
    • Load "particleshow.py" to visualize motions of particles. (See STEP4)

Re-start run

  • One can re-start simulations from the end of the previous run.
  • Start "Gourmet", and open "restart.udf"
  • Set "resume.Calculation" = "CONTINUE"
  • Increase "output.Num_step", and save it as "input2.udf"
  • Run KAPSEL as follows. (remove "./" if you use Windows command prompt)
   > ./kapsel -Iinput2.udf -Ooutput2.udf -Ddefine.udf -Rrestart2.udf

UDF file

  • UDF is a text file. One can browse and edit it using a text editor, but it.can be more easily handled with "Gourmet".
  • First, choose the type of problem you want to simulate by selecting "constitutive_eq" from the following.
    • Navier_Stokes:
    • Shear_Navier_Stokes:
    • Electrolyte:
  • Then, set the parameters shown below as you want.

- constitutive_eq
  - type: {Navier_Stokes, Shear_Navier_Stokes, Electrolyte}|
  - Navier_Stokes
     - DX
     - RHO
     - ETA
     - kBT
     - alpha_v
     - alpha_o
  - Shear_Navier_Stokes
     - DX
     - RHO
     - ETA
     - kBT
     - alpha_v
     - alpha_o
     - External_field
        - type: {DC, AC}
        - DC
           - shear_rate
        - AC
           - shear_rate
  - Electrolyte
     - DX
     - RHO
     - ETA
     - kBT
     - Dielectric_cst
     - INIT_profile
     - Add_salt
        - type: {salt, saltfree}
        - salt
           - Valency_positive_ion
           - Valency_negative_ion
           - Onsager_coeff_positive_ion
           - Onsager_coeff_negative_ion
           - Debye_length
        - saltfree
           - Valency_counterion
           - Onsager_coeff_counterion
     - Electric_field
        - type: {ON, OFF}
        - ON
           - type: {DC, AC}
           - DC
              - Ex
              - Ey
              - Ez
           - AC
              - Ex
              - Ey
              - Ez
              - Frequency
- object_type
  - type: {spherical_particle, chain}
  - spherical_particle
     - Particle_spec[]
        - Particle_spec[0]:
           - Particle_number
           - MASS_RATIO
           - Surface_charge
  - chain
     - Chain_spec[]
        - Chain_spec[0]
           - Beads_number
           - Chain_number
           - MASS_RATIO
           - Surface_charge
- A_XI
- A
- gravity
  - G
  - G_direction: {-X, -Y, -Z}
- EPSILON
- LJ_powers: {12:6, 24:12, 36:18}
- mesh
  - NPX
  - NPY
  - NPZ
- time_increment
  - type: {auto, manual}
  - auto
    - factor
  - manual
    - delta_t
- switch
  - ROTATION: {ON, OFF}
  - HYDRO_int: {Correct, free draining, squeeze-lubrication and drain}
  - Stokes: {with advection, w/o advection}
  - LJ_truncate: {ON, OFF, NONE}
  - INIT_distribution
    - type: {uniform_random, random_walk, FCC, BCC, user_specify}
    - random_walk
      - iteration
    - user_specify
      - Particles[]
        - Particles[0]
          - R
            - x
            - y
            - z
            - v
            - x
            - y
            - z
  - FIX_CELL
    - x: {ON, OFF}
    - y: {ON, OFF}
    - z: {ON, OFF}
- boundary_condition
  - type
- output
  - GTS
  - Num_snap
  - AVS
  - ON
    - Out_dir
    - Out_name
    - FileType
  - UDF
- E
- t
- Particles[]
  - Particles[]
    - R
      - x
      - y
      - z
      - v
      - x
      - y
      - z
- resume
  - Calculation

Python programing on Gourmet

  • Please take a look at the manual below.