* How to simulate your own problems[#f5c9dfdb]

** To make "input.udf" for own purpose [#e1cb8b6d]

- The simplest way is to use an appropriate sample UDF which can be found in "Examples" in the left menu.

- Start GOURMET and open an appropriate UDF. Modify it for your own purpose if necessarily and save it as "input.udf". GOURMET operation manual is here.
-- &ref(Docs/gourmetoperation_eng.pdf);.
-- &ref(Docs/GourmetOperation_jpn.pdf);.

- UDF is a text file. One can browse and edit it using a text editor, but it.can be more easily handled with GOURMET. See the manuals below for general information on UDF.
-- English: &ref(Docs/udf_spec_eng.pdf);
-- Japanese: &ref(Docs/UDF_Spec_jpn.pdf);

- In UDF of KAPSEL, one must first choose the type of problem you want to simulate by selecting "constitutive_eq" from list below.
-- Navier_Stokes: (sedimentation, diffusion, coagulation)
-- Shear_Navier_Stokes: (dynamics in shear flow, rheology)
-- Shear_Navier_Stokes_Lees_Edwards: (dynamics in shear flow, rheology)
-- Electrolyte: (electrophoresis)

- Computation time of each run scales almost lineally with the size of CFD grid and the time step. The largest part of the computation time is used by FFT calculation for solving fluid motion (and also for Poisson Eq. in case of electrolyte).  Additional costs for solving particles are small.
-- 10^5 iterations of 256^3 system takes roughly 5 days on a single core of Intel CPU.
-- Use of OpenMP much improves computational performance on multi-core machines. The speed-up factor depends on the size of calculation (typically between 4 and 6 using 8 cores).

- Older versions of UDF(v2.0,v2.1) must be converted to UDF(v3.0). Use &ref(convert.py); to be consistent with KAPSEL(v3.0). This script needs &ref(input_3.00.udf); and &ref(define_3.00.udf); additionally to old input_2.00.udf to be converted and define_2.00.udf used in it. In the following example, input_2.00.udf is converted to input_new.udf.

  > ls
  > convert.py define_2.00.udf define_3.00.udf input_2.00.udf input_3.00.udf
  > python convert.py input_2.00.udf input_new.udf


** To perform normal simulation [#le4c697d]

- Run KAPSEL as follows.

  > ../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 format. This is common for any simulations, but the versions of input.udf and define.udf must be the same.
-- "''-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".

** To re-start simulation from the end of previous run  [#u7810c9a]

- 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. 

  > ../kapsel -Iinput2.udf -Ooutput2.udf -Ddefine.udf -Rrestart2.udf