diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd6f53a137628e92a0c3127dc71012e83f9ebd2f..a2a18ce081039e32df522b993c3a60e9e5e78514 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -327,9 +327,6 @@ find_library(
 set(TURTLE_LIBS ${FFTW_MPI} ${TURTLE_LIBS})
 #####################################################################################
 
-#list(APPEND TURTLE_LIBS "${MPI_CXX_LIBRARIES}")
-#list(APPEND TURTLE_LIBS "${OpenMP_CXX_LIB_NAMES}")
-
 #####################################################################################
 ## Get the links and include from deps
 
@@ -338,193 +335,11 @@ get_property(ALL_LINK_DIRS DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY LINK_D
 #####################################################################################
 
 #####################################################################################
-## Build the lib
+## Add sources
 
 include_directories(${PROJECT_SOURCE_DIR}/cpp)
 
-#file(GLOB_RECURSE cpp_for_lib ${PROJECT_SOURCE_DIR}/*.cpp)
-set(cpp_for_lib
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/code_base.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/direct_numerical_simulation.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSE.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVE.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/static_field.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/kraichnan_field.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/joint_acc_vel_stats.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/pressure_stats.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/filter_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/field_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/write_filtered_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/dealias_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/Gauss_field_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/symmetrize_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/field_output_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/phase_shift_test.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_tracer_set.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/get_rfields.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/get_velocity.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/get_3D_correlations.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/write_rpressure.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/bandpass_stats.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/field_single_to_double.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/resize.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVE_field_stats.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/native_binary_to_hdf5.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/postprocess.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/base.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/field.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/kspace.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/field_layout.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/hdf5_tools.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/fftw_tools.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/vorticity_equation.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/field_binary_IO.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n0.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n1.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n2.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n3.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n4.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n5.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n6.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n7.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n8.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n9.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n10.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/Lagrange_polys.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/field_tinterpolator.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/particle_set.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/rhs/tracer_rhs.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/rhs/tracer_with_collision_counter_rhs.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particle_solver.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/scope_timer.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_interpolation.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVEparticles.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVEcomplex_particles.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVE_Stokes_particles.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVEp_extra_sampling.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/inner/particles_inner_computer.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/ornstein_uhlenbeck_process.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/ou_vorticity_equation.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_interpolation_methods.cpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_particle_integration.cpp)
-
-set(hpp_for_lib
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/code_base.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/direct_numerical_simulation.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSE.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVE.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/static_field.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/kraichnan_field.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/joint_acc_vel_stats.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/pressure_stats.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/filter_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/dealias_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/Gauss_field_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/field_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/write_filtered_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/symmetrize_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/field_output_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/phase_shift_test.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_tracer_set.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/get_rfields.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/get_velocity.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/get_3D_correlations.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/write_rpressure.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/bandpass_stats.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/field_single_to_double.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/resize.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVE_field_stats.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/native_binary_to_hdf5.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/postprocess.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/field.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/kspace.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/field_layout.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/hdf5_tools.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/fftw_tools.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/vorticity_equation.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/field_binary_IO.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n0.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n1.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n2.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n3.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n4.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n5.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n6.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n7.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n8.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n9.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/spline_n10.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/Lagrange_polys.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/abstract_particle_set.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/particle_set.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/field_tinterpolator.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/abstract_particle_rhs.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/rhs/tracer_rhs.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/rhs/deformation_tensor_rhs.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/rhs/tracer_with_collision_counter_rhs.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particle_solver.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/scope_timer.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_interpolation.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVEparticles.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVEcomplex_particles.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVE_Stokes_particles.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVEp_extra_sampling.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/inner/particles_inner_computer.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/inner/particles_inner_computer_2nd_order.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/inner/particles_inner_computer_empty.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/abstract_particles_input.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/abstract_particles_output.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/abstract_particles_system.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/abstract_particles_system_with_p2p.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/alltoall_exchanger.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/lock_free_bool_array.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/p2p/p2p_computer_empty.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/p2p/p2p_computer.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/p2p/p2p_ghost_collisions.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/p2p/p2p_distr_mpi.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/p2p/p2p_tree.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_adams_bashforth.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_distr_mpi.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/particles_field_computer.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/interpolation/particles_generic_interp.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_input_hdf5.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_output_hdf5.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_output_mpiio.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_output_sampling_hdf5.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_sampling.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_system_builder.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_system.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/particles/particles_utils.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/main_code.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/codes_with_no_output.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVE_no_output.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/NSVEparticles_no_output.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/base.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/env_utils.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/fftw_interface.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/turtle_timer.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/omputils.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/shared_array.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/spectrum_function.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/ornstein_uhlenbeck_process.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/ou_vorticity_equation.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_interpolation_methods.hpp
-    ${PROJECT_SOURCE_DIR}/cpp/full_code/test_particle_integration.hpp)
-
-if(GSL_FOUND)
-    LIST(APPEND cpp_for_lib ${PROJECT_SOURCE_DIR}/cpp/particles/rhs/deformation_tensor_rhs.cpp)
-    LIST(APPEND hpp_for_lib ${PROJECT_SOURCE_DIR}/cpp/particles/rhs/deformation_tensor_rhs.hpp)
-endif()
-
-#file(GLOB_RECURSE hpp_for_lib ${PROJECT_SOURCE_DIR}/*.hpp)
-LIST(APPEND source_files ${hpp_for_lib} ${cpp_for_lib})
-
-target_sources(TurTLE
-    PRIVATE
-    ${source_files})
+add_subdirectory(cpp)
 
 install(TARGETS TurTLE EXPORT TURTLE_EXPORT DESTINATION lib/ )
 install(DIRECTORY ${PROJECT_SOURCE_DIR}/cpp/ DESTINATION include/TurTLE/ FILES_MATCHING PATTERN "*.h*")
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6421dd5c13ccd7b17a3c65f239d6e0eda1f50294
--- /dev/null
+++ b/cpp/CMakeLists.txt
@@ -0,0 +1,210 @@
+#######################################################################
+#                                                                     #
+#  Copyright 2019 Max Planck Institute                                #
+#                 for Dynamics and Self-Organization                  #
+#                                                                     #
+#  This file is part of TurTLE.                                       #
+#                                                                     #
+#  TurTLE is free software: you can redistribute it and/or modify     #
+#  it under the terms of the GNU General Public License as published  #
+#  by the Free Software Foundation, either version 3 of the License,  #
+#  or (at your option) any later version.                             #
+#                                                                     #
+#  TurTLE is distributed in the hope that it will be useful,          #
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of     #
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      #
+#  GNU General Public License for more details.                       #
+#                                                                     #
+#  You should have received a copy of the GNU General Public License  #
+#  along with TurTLE.  If not, see <http://www.gnu.org/licenses/>     #
+#                                                                     #
+# Contact: Cristian.Lalescu@ds.mpg.de                                 #
+#                                                                     #
+#######################################################################
+
+
+
+set(cpp_for_lib
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/code_base.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/direct_numerical_simulation.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSE.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVE.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/static_field.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/kraichnan_field.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/joint_acc_vel_stats.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/pressure_stats.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/filter_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/field_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/write_filtered_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/dealias_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/Gauss_field_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/symmetrize_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/field_output_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/phase_shift_test.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_tracer_set.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/get_rfields.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/get_velocity.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/get_3D_correlations.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/write_rpressure.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/bandpass_stats.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/field_single_to_double.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/resize.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVE_field_stats.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/native_binary_to_hdf5.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/postprocess.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/base.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/field.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/kspace.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/field_layout.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/hdf5_tools.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/fftw_tools.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/vorticity_equation.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/field_binary_IO.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n0.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n1.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n2.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n3.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n4.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n5.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n6.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n7.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n8.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n9.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n10.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/Lagrange_polys.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/field_tinterpolator.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/particle_set.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/rhs/tracer_rhs.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/rhs/tracer_with_collision_counter_rhs.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particle_solver.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/scope_timer.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_interpolation.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVEparticles.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVEcomplex_particles.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVE_Stokes_particles.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVEp_extra_sampling.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/inner/particles_inner_computer.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/ornstein_uhlenbeck_process.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/ou_vorticity_equation.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_interpolation_methods.cpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_particle_integration.cpp)
+
+set(hpp_for_lib
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/code_base.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/direct_numerical_simulation.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSE.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVE.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/static_field.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/kraichnan_field.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/joint_acc_vel_stats.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/pressure_stats.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/filter_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/dealias_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/Gauss_field_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/field_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/write_filtered_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/symmetrize_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/field_output_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/phase_shift_test.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_tracer_set.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/get_rfields.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/get_velocity.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/get_3D_correlations.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/write_rpressure.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/bandpass_stats.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/field_single_to_double.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/resize.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVE_field_stats.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/native_binary_to_hdf5.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/postprocess.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/field.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/kspace.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/field_layout.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/hdf5_tools.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/fftw_tools.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/vorticity_equation.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/field_binary_IO.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n0.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n1.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n2.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n3.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n4.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n5.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n6.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n7.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n8.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n9.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/spline_n10.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/Lagrange_polys.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/abstract_particle_set.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/particle_set.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/field_tinterpolator.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/abstract_particle_rhs.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/rhs/tracer_rhs.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/rhs/deformation_tensor_rhs.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/rhs/tracer_with_collision_counter_rhs.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particle_solver.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/scope_timer.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_interpolation.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVEparticles.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVEcomplex_particles.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVE_Stokes_particles.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVEp_extra_sampling.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/inner/particles_inner_computer.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/inner/particles_inner_computer_2nd_order.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/inner/particles_inner_computer_empty.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/abstract_particles_input.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/abstract_particles_output.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/abstract_particles_system.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/abstract_particles_system_with_p2p.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/alltoall_exchanger.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/lock_free_bool_array.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/p2p/p2p_computer_empty.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/p2p/p2p_computer.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/p2p/p2p_ghost_collisions.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/p2p/p2p_distr_mpi.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/p2p/p2p_tree.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_adams_bashforth.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_distr_mpi.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/particles_field_computer.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/interpolation/particles_generic_interp.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_input_hdf5.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_output_hdf5.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_output_mpiio.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_output_sampling_hdf5.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_sampling.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_system_builder.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_system.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/particles/particles_utils.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/main_code.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/codes_with_no_output.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVE_no_output.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/NSVEparticles_no_output.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/base.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/env_utils.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/fftw_interface.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/turtle_timer.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/omputils.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/shared_array.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/spectrum_function.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/ornstein_uhlenbeck_process.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/ou_vorticity_equation.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_interpolation_methods.hpp
+    ${CMAKE_CURRENT_LIST_DIR}/full_code/test_particle_integration.hpp)
+
+if(GSL_FOUND)
+    LIST(APPEND cpp_for_lib ${CMAKE_CURRENT_LIST_DIR}/particles/rhs/deformation_tensor_rhs.cpp)
+    LIST(APPEND hpp_for_lib ${CMAKE_CURRENT_LIST_DIR}/particles/rhs/deformation_tensor_rhs.hpp)
+endif()
+
+LIST(APPEND source_files ${hpp_for_lib} ${cpp_for_lib})
+
+target_sources(TurTLE
+    PRIVATE
+    ${source_files})
+
+#EOF
+