* How to Develop KAPSEL [#x0a1d9ed]


** Online technical documentation for code developers[#j693a2a3]

//- http://www-tph.cheme.kyoto-u.ac.jp/kapsel/Doxygen/html/

//|[[''Main page'':http://www-tph.cheme.kyoto-u.ac.jp/kapsel/Doxygen/html/index.html]]|To be updated|
//|[[''Related Pages'':http://www-tph.cheme.kyoto-u.ac.jp/kapsel/Doxygen/html/pages.html]]|To be updated|
|[[''Data Structures'':http://www-tph.cheme.kyoto-u.ac.jp/kapsel/Doxygen/html/annotated.html]]|List of important variables and detailed explanations of the data structures|
|[[''File List'':http://www-tph.cheme.kyoto-u.ac.jp/kapsel/Doxygen/html/files.html]]|List of souce files and detailed explanations of the all source codes including mutual dependencies of functions|

The above html files are generated by Doxygen, and the same documentation is included also in "Doxygen/html" folder of the installation package.

#ref(doxygen_files.jpg,,60%)

** GIT: A version control system [#eeccce6b]
- Bug fixes and new implementations between major updates are provided through Github. You may make a local clone of the newest KAPSEL package by

  > git clone git@github.com:kapsel-dns/kapsel.git my_local_kapsel

- If the above command does not work, you may try the following.

  > git clone https://github.com/kapsel-dns/kapsel.git my_local_kapsel

#ref(git.jpg,,60%)

** Contact [#o3d3369d]
- KAPSEL Development Team: kapsel.dev@gmail.com

//** File List [#cc973095]
//
//| ''alloc.c''|			Memory allocation routines|
//| ''alloc.h''|	Memory allocation routines (header file)|
//| ''avs_output.cxx''|	Output routines for field data in AVS/Express format|
//| ''avs_output.h''|	Output routines for field data in AVS/Express format (header file)|
//| ''avs_output_p.cxx''|	Output routines for particle data in AVS/Express format|
//| ''avs_output_p.h''|	Output routines for particle data in AVS/Express format (header file)|
//| ''f_particle.cxx''|	Compute Hydrodynamic force on particle|
//| ''f_particle.h''|	Compute Hydrodynamic force on particle (header file)|
//| ''fft_wrapper.cxx''|	FFT wrapper routines for reciprocal space calculations|
//| ''fft_wrapper.h''|	FFT wrapper routines for reciprocal space calculations (header file)|
//| ''fftsg.c''|	Ooura's 1D FFT routines|
//| ''fftsg3d.c''|	Ooura's 3D FFT routines|
//| ''fluct.cxx''|	Routines to compute random thermal fluctuation forces|
//| ''fluct.h''|	Routines to compute random thermal fluctuation forces (header file)|
//| ''fluid_solver.cxx''|	Solver for Navier-Stokes equations|
//| ''fluid_solver.h''|	Solver for Navier-Stokes equations (header file)|
//| ''init_fluid.cxx''|	Initialize fluid velocity fields|
//| ''init_fluid.h''|	Initialize fluid velocity fields (header file)|
//| ''init_particle.cxx''|	Initialize particle properties|
//| ''init_particle.h''|	Initialize particle properties (header file)|
//| ''input.cxx''|	Read udf input file to start simulation|
//| ''input.h''|	Read udf input file to start simulation (header file)|
//| ''interaction.cxx''|	Compute inter-particle interactions|
//| ''interaction.h''|	Compute inter-particle interactions (header file)|
//| ''lad3.h''|	Basic Matrix / Vector Euclidean 3D routines (not very optimized)|
//| ''macro.h''|	Global parameters and macro function definitions|
//| ''make_phi.cxx''|	Routines to compute smooth profile and grid particle properties|
//| ''make_phi.h''|	Routines to compute smooth profile and grid particle properties (header file)|
//| ''Matrix_Inverse.h''|	|
//| ''md_force.cxx''|	Routines to compute MD forces on particles|
//| ''md_force.h''|	Routines to compute MD forces on particles (header file)|
//| ''mt19937ar.c''|	Randon number generator - You get what you deserve if you modify this file !|
//| ''operate_electrolyte.cxx''|	Routines to compute the charge distributions and forces|
//| ''operate_electrolyte.h''|	Routines to compute the charge distributions and forces (header file)|
//| ''operate_omega.cxx''|	High-level routines to handle basic operations on velocity field|
//| ''operate_omega.h''|	High-level routines to handle basic operations on velocity field (header file)|
//| ''operate_surface.cxx''|	Routines to control the slip velocity at particle fluid boundaries|
//| ''operate_surface.h''|	Routines to control the slip velocity at particle fluid boundaries (header file)|
//| ''parameter_define.h''|	Define global system parameters for FFT routines|
//| ''particle_solver.cxx''|	Solver routines for particle position and velocity|
//| ''particle_solver.h''|	Solver routines for particle position and velocity (header file)|
//| ''profile.cxx''|	Smooth particle profile routines|
//| ''profile.h''|	Smooth particle profile routines (header file)|
//| ''quaternion.h''|	Implements simple quaternion algebra|
//| ''resume.cxx''|	Routines to read/write restart file|
//| ''resume.h''|	Routines to read/write restart file (header file)|
//| ''rigid.h''|	|
//| ''rigid_body.cxx''|	Auxiliary routines to solve equations of motion for rigid bodies|
//| ''rigid_body.h''|	Auxiliary routines to solve equations of motion for rigid bodies (header file)|
//| ''solute_rhs.cxx''|	Routines to compute the terms appearing in the right hand side of the solute advection diffusion equation|
//| ''solute_rhs.h''|	Routines to compute the terms appearing in the right hand side of the solute advection diffusion equation (header file)|
//| ''sp_3d_ns.cxx''|	Main program file|
//| ''sp_3d_ns.h''|	Main program file (header)|
//| ''variable.h''|	Defines the global structs (CTime, Particle, Index_range)|
//| ''Tools/udf2xyz.cxx''||
//| ''Tools/helixudf_generator/''|A tool to generate initial configuration of helicesfor "input.udf"|