ashell is a proof-of-concept code I am developing to learn modern c++ and to practice object-oriented programming. Its design has been inspired by HOOMD-blue's architecture.
- CMake >= 2.8
- make
- A c++14-compliant compiler (tested with GCC 5.4)
- A few Boost modules:
- Boost Python (libboost-python-dev on debian-derived distros)
- Boost Log (libboost-log-dev)
- Boost Signals2 (libboost-signals-dev)
Extract the ashell archive (or download the nightly build via git) and compile it with the following commands:
cd ashell # enter the ashell folder
mkdir build # create a new build folder. It is good practice to compile out-of-source
cd build
cmake .. # here you can specify additional options, see next section
make -j4 # compile ashell. The -jX make option makes it compile the code in parallel by using X threads.
At the end of the compilation the final executable (ashell) will be placed in the build/bin folder.
Here is a list of options that can be passed to cmake during the pre-compilation stage:
-DPython=On
Enables Python bindings-DDebug=ON
Compiles with debug symbols and without optimisation flags-DG=ON
Compiles with debug symbols + optimisation flags-DINTEL=ON
Uses INTEL's compiler suite
- If the input file contains no
configuration_file
key,ashell
will attempt to generate a random configuration using theinitial_N
andinitial_box
keys as initial number of particles and box size, respectively. - Use the
utilities/generate.py
script to set up a configuration of a spherical triangulated mesh. The script, which takes as argument the number of points that will compose the sphere, produces an initial configuration and a topology file.
lennard_jones_force
, parameters:rc
sigma
FENE_force
, parameters:k
r0
Harmonic force
, parameters:k
r0
force_triangulated_mesh
, parameters:kv
force constant associated to the relative change of the total volumeka
force constant associated to the relative change of the total areaV0_from_conf
boolean, if trueV0
will be initialised by using the volume of the starting configurationV0
used only ifV0_from_initial_conf
is absent or set to falseA0_from_conf
boolean, if trueA0
will be initialised by using the area of the starting configurationA0
used only ifA0_from_initial_conf
is absent or set to false
force_dihedral
, parameters:kb
theta0
- The structure of ashell has been inspired by HOOMD-blue
- Eigen 3.3.4 is included in the source tree
- Some utility classes have been taken (and subsequently modified) from oxDNA