[liggghts] 03/06: Merge

Anton Gladky gladk at moszumanska.debian.org
Mon Jul 17 22:20:50 UTC 2017


This is an automated email from the git hooks/post-receive script.

gladk pushed a commit to branch master
in repository liggghts.

commit ea5da7671e11bfa47e083cb073d7b5cced06f9ca
Merge: a769922 e042cd2
Author: Anton Gladky <gladk at debian.org>
Date:   Mon Jul 17 23:21:20 2017 +0200

    Merge

 doc/Eqs/cna_cutoff1.tex                            |    28 +-
 doc/Eqs/cna_cutoff2.tex                            |    24 +-
 doc/Eqs/eff_ECP1.tex                               |    16 +-
 doc/Eqs/fix_wall_lj1043.tex                        |    22 +-
 doc/Eqs/heat_flux_k.tex                            |    22 +-
 doc/Eqs/pair_comb1.tex                             |    14 +-
 doc/Eqs/pair_comb2.tex                             |    44 +-
 doc/Eqs/pair_lubricate_GRM.jpg                     |   Bin 0 -> 83152 bytes
 doc/Eqs/pair_lubricate_GRM.tex                     |    17 +
 doc/JPG/screenshot_atomeye.jpg                     |   Bin 426608 -> 0 bytes
 doc/JPG/screenshot_atomeye_small.jpg               |   Bin 7498 -> 0 bytes
 doc/JPG/screenshot_gl.jpg                          |   Bin 306252 -> 0 bytes
 doc/JPG/screenshot_gl_small.jpg                    |   Bin 5875 -> 0 bytes
 doc/JPG/screenshot_pymol.jpg                       |   Bin 417093 -> 0 bytes
 doc/JPG/screenshot_pymol_small.jpg                 |   Bin 7660 -> 0 bytes
 doc/JPG/screenshot_vmd.jpg                         |   Bin 327211 -> 0 bytes
 doc/JPG/screenshot_vmd_small.jpg                   |   Bin 6787 -> 0 bytes
 doc/Makefile                                       |   161 +-
 doc/Manual.html                                    |   407 +-
 doc/Manual.pdf                                     |   Bin 3368441 -> 0 bytes
 doc/Manual.txt                                     |    69 +-
 doc/Section_commands.html                          |   699 +-
 doc/Section_commands.txt                           |    11 +-
 doc/Section_commands_LAMMPS.html                   |   226 +-
 doc/Section_errors.html                            | 13235 ++++-------
 doc/Section_errors.txt                             |    12 +-
 doc/Section_gran_models.html                       |   380 +-
 doc/Section_gran_models.txt                        |     2 +-
 doc/Section_gran_models_prev.html                  |    19 -
 doc/Section_gran_models_prev.txt                   |    17 -
 doc/Section_howto.html                             |  1649 +-
 doc/Section_input_script.html                      |   621 +-
 doc/Section_input_script.txt                       |     6 +-
 doc/Section_intro.html                             |   544 +-
 doc/Section_intro.txt                              |    31 +-
 doc/Section_mesh_modules.html                      |   251 +
 doc/Section_mesh_modules.txt                       |    23 +
 doc/Section_modify.html                            |  1339 +-
 doc/Section_packages.html                          |   369 +-
 doc/Section_python.html                            |  1177 +-
 doc/Section_start.html                             |  2109 +-
 doc/Section_start.txt                              |   385 +-
 doc/_downloads/yi_jing_01_chien.jpg                |   Bin 0 -> 9498 bytes
 doc/_images/LIGGGHTS_logo.png                      |   Bin 0 -> 168803 bytes
 doc/_images/bond_harmonic.jpg                      |   Bin 0 -> 1861 bytes
 doc/_images/box.jpg                                |   Bin 0 -> 11093 bytes
 doc/_images/box_inverse.jpg                        |   Bin 0 -> 10250 bytes
 doc/_images/centro_symmetry.jpg                    |   Bin 0 -> 4111 bytes
 doc/_images/cna_cutoff1.jpg                        |   Bin 0 -> 13431 bytes
 doc/_images/cna_cutoff2.jpg                        |   Bin 0 -> 2518 bytes
 doc/_images/compute_gyration.jpg                   |   Bin 0 -> 3658 bytes
 doc/_images/compute_msd_nongauss.jpg               |   Bin 0 -> 7277 bytes
 doc/_images/fix_box_relax1.jpg                     |   Bin 0 -> 3375 bytes
 doc/_images/fix_box_relax2.jpg                     |   Bin 0 -> 3029 bytes
 doc/_images/fix_sph_density_continuity_eq1.jpg     |   Bin 0 -> 2445 bytes
 doc/_images/fix_sph_density_continuity_eq2.jpg     |   Bin 0 -> 3227 bytes
 doc/_images/fix_sph_density_corr_eq1.jpg           |   Bin 0 -> 3031 bytes
 doc/_images/fix_sph_density_summation.jpg          |   Bin 0 -> 1885 bytes
 doc/_images/fix_spring_rg.jpg                      |   Bin 0 -> 16204 bytes
 doc/_images/fix_wall_colloid.jpg                   |   Bin 0 -> 17879 bytes
 doc/_images/fix_wall_harmonic.jpg                  |   Bin 0 -> 2413 bytes
 doc/_images/fix_wall_lj93.jpg                      |   Bin 0 -> 4883 bytes
 doc/_images/fix_wall_region_sph.jpg                |   Bin 0 -> 3835 bytes
 doc/_images/heat_gran.png                          |   Bin 0 -> 41637 bytes
 doc/_images/pair_gran_hooke_eqEpsd1.gif            |   Bin 0 -> 1093 bytes
 doc/_images/pair_gran_hooke_eqEpsd2.gif            |   Bin 0 -> 5188 bytes
 doc/_images/pair_gran_hooke_eqEpsd3.gif            |   Bin 0 -> 4048 bytes
 doc/_images/pair_gran_hooke_eqEpsd4.gif            |   Bin 0 -> 4046 bytes
 doc/_images/pair_gran_hooke_eqEpsd5.gif            |   Bin 0 -> 814 bytes
 doc/_images/pair_gran_html_147eaf38.png            |   Bin 0 -> 19784 bytes
 doc/_images/pair_gran_html_60b8ced2.png            |   Bin 0 -> 17270 bytes
 doc/_images/pair_gran_html_m225ba7de.png           |   Bin 0 -> 16778 bytes
 doc/_images/pair_gran_html_m566a9984.png           |   Bin 0 -> 10573 bytes
 doc/_images/pair_gran_html_m5aad056c.png           |   Bin 0 -> 25028 bytes
 doc/_images/pair_gran_html_m76cd8bd9.png           |   Bin 0 -> 8736 bytes
 doc/_images/pair_lj.jpg                            |   Bin 0 -> 4547 bytes
 doc/_images/pair_soft.jpg                          |   Bin 0 -> 4085 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq1.jpg      |   Bin 0 -> 4337 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq2.jpg      |   Bin 0 -> 6276 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq3.jpg      |   Bin 0 -> 4429 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq4.jpg      |   Bin 0 -> 3338 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq5.jpg      |   Bin 0 -> 4286 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq6.jpg      |   Bin 0 -> 2515 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq7.jpg      |   Bin 0 -> 1871 bytes
 doc/_images/pair_sph_artvisc_tenscorr_eq8.jpg      |   Bin 0 -> 2474 bytes
 doc/_images/pressure.jpg                           |   Bin 0 -> 4097 bytes
 doc/_images/pressure_tensor.jpg                    |   Bin 0 -> 5038 bytes
 doc/_images/rotate.jpg                             |   Bin 0 -> 17991 bytes
 doc/_images/screen_mobile.png                      |   Bin 0 -> 96294 bytes
 doc/_images/stress_tensor.jpg                      |   Bin 0 -> 22403 bytes
 doc/_images/stress_tensor_granular.png             |   Bin 0 -> 1928 bytes
 doc/_images/transform.jpg                          |   Bin 0 -> 60790 bytes
 doc/_images/viblin.jpg                             |   Bin 0 -> 24293 bytes
 doc/_images/vibrot.jpg                             |   Bin 0 -> 24866 bytes
 doc/_images/yi_jing_01_chien.jpg                   |   Bin 0 -> 9498 bytes
 doc/_static/ajax-loader.gif                        |   Bin 0 -> 673 bytes
 doc/_static/basic.css                              |   540 +
 doc/_static/comment-bright.png                     |   Bin 0 -> 3500 bytes
 doc/_static/comment-close.png                      |   Bin 0 -> 3578 bytes
 doc/_static/comment.png                            |   Bin 0 -> 3445 bytes
 doc/_static/css/badge_only.css                     |     2 +
 doc/_static/css/badge_only.css.map                 |     7 +
 doc/_static/css/theme.css                          |     5 +
 doc/_static/css/theme.css.map                      |     7 +
 doc/_static/doctools.js                            |   247 +
 doc/_static/down-pressed.png                       |   Bin 0 -> 368 bytes
 doc/_static/down.png                               |   Bin 0 -> 363 bytes
 doc/_static/file.png                               |   Bin 0 -> 392 bytes
 doc/_static/fonts/FontAwesome.otf                  |   Bin 0 -> 85908 bytes
 doc/_static/fonts/Inconsolata-Bold.ttf             |   Bin 0 -> 66352 bytes
 doc/_static/fonts/Inconsolata-Regular.ttf          |   Bin 0 -> 84548 bytes
 doc/_static/fonts/Lato-Bold.ttf                    |   Bin 0 -> 121788 bytes
 doc/_static/fonts/Lato-Regular.ttf                 |   Bin 0 -> 120196 bytes
 doc/_static/fonts/RobotoSlab-Bold.ttf              |   Bin 0 -> 170616 bytes
 doc/_static/fonts/RobotoSlab-Regular.ttf           |   Bin 0 -> 169064 bytes
 doc/_static/fonts/fontawesome-webfont.eot          |   Bin 0 -> 56006 bytes
 doc/_static/fonts/fontawesome-webfont.svg          |   520 +
 doc/_static/fonts/fontawesome-webfont.ttf          |   Bin 0 -> 112160 bytes
 doc/_static/fonts/fontawesome-webfont.woff         |   Bin 0 -> 65452 bytes
 doc/_static/jquery.js                              |  9266 ++++++++
 doc/_static/minus.png                              |   Bin 0 -> 199 bytes
 doc/_static/plus.png                               |   Bin 0 -> 199 bytes
 doc/_static/pygments.css                           |    62 +
 doc/_static/searchtools.js                         |   560 +
 doc/_static/underscore.js                          |   807 +
 doc/_static/up-pressed.png                         |   Bin 0 -> 372 bytes
 doc/_static/up.png                                 |   Bin 0 -> 363 bytes
 doc/_static/websupport.js                          |   808 +
 doc/atom_modify.html                               |   361 +-
 doc/atom_style.html                                |   465 +-
 doc/atom_style.txt                                 |     4 +-
 doc/bond_coeff.html                                |   330 +-
 doc/bond_harmonic.html                             |   297 +-
 doc/bond_hybrid.html                               |   316 +-
 doc/bond_none.html                                 |   250 +-
 doc/bond_style.html                                |   354 +-
 doc/boundary.html                                  |   334 +-
 doc/box.html                                       |   301 +-
 doc/change_box.html                                |   640 +-
 doc/change_box.txt                                 |     8 +-
 doc/clear.html                                     |   262 +-
 doc/communicate.html                               |   378 +-
 doc/compute.html                                   |   439 +-
 doc/compute.txt                                    |    29 +-
 doc/compute_atom_molecule.html                     |   339 +-
 doc/compute_atom_molecule.txt                      |     3 +-
 doc/compute_bond_local.html                        |   322 +-
 doc/compute_bond_local.txt                         |     3 +-
 doc/compute_centro_atom.html                       |   363 +-
 doc/compute_centro_atom.txt                        |     3 +-
 doc/compute_cluster_atom.html                      |   291 +-
 doc/compute_cluster_atom.txt                       |     3 +-
 doc/compute_cna_atom.html                          |   349 +-
 doc/compute_cna_atom.txt                           |     3 +-
 doc/compute_com.html                               |   313 +-
 doc/compute_com.txt                                |     5 +-
 doc/compute_com_molecule.html                      |   317 +-
 doc/compute_com_molecule.txt                       |     5 +-
 doc/compute_contact_atom.html                      |   330 +-
 doc/compute_contact_atom.txt                       |    32 +-
 doc/compute_coord_atom.html                        |   380 +-
 doc/compute_coord_atom.txt                         |    27 +-
 doc/compute_coord_gran.html                        |   286 +-
 doc/compute_coord_gran.txt                         |     5 +-
 doc/compute_displace_atom.html                     |   324 +-
 doc/compute_displace_atom.txt                      |     5 +-
 doc/compute_erotate.html                           |   250 +
 doc/compute_erotate.txt                            |    53 +
 doc/compute_erotate_asphere.html                   |   310 +-
 doc/compute_erotate_asphere.txt                    |     5 +-
 doc/compute_erotate_multisphere.html               |   288 +-
 doc/compute_erotate_multisphere.txt                |     5 +-
 doc/compute_erotate_sphere.html                    |   317 +-
 doc/compute_erotate_sphere.txt                     |    16 +-
 doc/compute_erotate_sphere_atom.html               |   308 +-
 doc/compute_erotate_sphere_atom.txt                |     5 +-
 doc/compute_group_group.html                       |   314 +-
 doc/compute_group_group.txt                        |     3 +-
 doc/compute_gyration.html                          |   316 +-
 doc/compute_gyration.txt                           |     5 +-
 doc/compute_gyration_molecule.html                 |   332 +-
 doc/compute_gyration_molecule.txt                  |     3 +-
 doc/compute_inertia_molecule.html                  |   318 +-
 doc/compute_inertia_molecule.txt                   |     5 +-
 doc/compute_ke.html                                |   316 +-
 doc/compute_ke.txt                                 |    16 +-
 doc/compute_ke_atom.html                           |   300 +-
 doc/compute_ke_atom.txt                            |     5 +-
 doc/compute_ke_multisphere.html                    |   289 +-
 doc/compute_ke_multisphere.txt                     |     5 +-
 doc/compute_modify.html                            |   314 +-
 doc/compute_msd.html                               |   350 +-
 doc/compute_msd.txt                                |     3 +-
 doc/compute_msd_molecule.html                      |   343 +-
 doc/compute_msd_molecule.txt                       |     5 +-
 doc/compute_msd_nongauss.html                      |   321 +-
 doc/compute_msd_nongauss.txt                       |     3 +-
 doc/compute_nparticles_tracer_region.html          |   363 +-
 doc/compute_nparticles_tracer_region.txt           |     3 +-
 doc/compute_pair_gran_local.html                   |   418 +-
 doc/compute_pair_gran_local.txt                    |     5 +-
 doc/compute_pe.html                                |   324 +-
 doc/compute_pe.txt                                 |     3 +-
 doc/compute_pe_atom.html                           |   350 +-
 doc/compute_pe_atom.txt                            |     3 +-
 doc/compute_pressure.html                          |   367 +-
 doc/compute_pressure.txt                           |     3 +-
 doc/compute_property_atom.html                     |   437 +-
 doc/compute_property_atom.txt                      |     3 +-
 doc/compute_property_local.html                    |   362 +-
 doc/compute_property_local.txt                     |     3 +-
 doc/compute_property_molecule.html                 |   298 +-
 doc/compute_property_molecule.txt                  |     3 +-
 doc/compute_rdf.html                               |   411 +-
 doc/compute_rdf.txt                                |     3 +-
 doc/compute_reduce.html                            |   462 +-
 doc/compute_reduce.txt                             |     3 +-
 doc/compute_rigid.html                             |   359 +-
 doc/compute_rigid.txt                              |    26 +-
 doc/compute_slice.html                             |   348 +-
 doc/compute_slice.txt                              |     3 +-
 doc/compute_stress_atom.html                       |   398 +-
 doc/compute_stress_atom.txt                        |     3 +-
 doc/compute_voronoi_atom.html                      |   399 +-
 doc/compute_voronoi_atom.txt                       |     3 +-
 doc/create_atoms.html                              |   478 +-
 doc/create_atoms.txt                               |     2 +-
 doc/create_box.html                                |   347 +-
 doc/create_box.txt                                 |    22 +-
 doc/delete_atoms.html                              |   354 +-
 doc/delete_atoms.txt                               |     4 +-
 doc/delete_bonds.html                              |   352 +-
 doc/dielectric.html                                |   268 +-
 doc/dimension.html                                 |   284 +-
 doc/displace_atoms.html                            |   405 +-
 doc/displace_atoms.txt                             |     2 +-
 doc/dump.html                                      |   985 +-
 doc/dump.txt                                       |    80 +-
 doc/dump_custom_vtk.html                           |   692 +-
 doc/dump_custom_vtk.txt                            |    13 +-
 doc/dump_image.html                                |   986 +-
 doc/dump_image.txt                                 |     4 +-
 doc/dump_modify.html                               |  1424 +-
 doc/dump_modify_vtk.html                           |   591 +-
 doc/echo.html                                      |   268 +-
 doc/fix.html                                       |   454 +-
 doc/fix_adapt.html                                 |   517 +-
 doc/fix_addforce.html                              |   418 +-
 doc/fix_addforce.txt                               |    10 +
 doc/fix_ave_atom.html                              |   410 +-
 doc/fix_ave_correlate.html                         |   714 +-
 doc/fix_ave_euler.html                             |   371 +-
 doc/fix_ave_euler.txt                              |    14 +
 doc/fix_ave_histo.html                             |   651 +-
 doc/fix_ave_spatial.html                           |   725 +-
 doc/fix_ave_time.html                              |   627 +-
 doc/fix_aveforce.html                              |   341 +-
 doc/fix_bond_break.html                            |   410 +-
 doc/fix_bond_break.txt                             |     4 +-
 doc/fix_bond_create.html                           |   495 +-
 doc/fix_bond_create.txt                            |     4 +-
 doc/fix_box_relax.html                             |   635 +-
 doc/fix_buoyancy.html                              |   337 +-
 doc/fix_check_timestep_gran.html                   |   333 +-
 doc/fix_continuum_weighted.html                    |   450 +-
 doc/fix_couple_cfd.html                            |   214 +
 doc/fix_couple_cfd.txt                             |    15 +
 doc/fix_deform.html                                |   874 +-
 doc/fix_drag.html                                  |   314 +-
 doc/fix_drag.txt                                   |    10 +
 doc/fix_dt_reset.html                              |   366 +-
 doc/fix_efield.html                                |   418 +-
 doc/fix_enforce2d.html                             |   279 +-
 doc/fix_external.html                              |   433 +-
 doc/fix_freeze.html                                |   294 +-
 doc/fix_gravity.html                               |   370 +-
 doc/fix_heat_gran_conduction.html                  |   432 +-
 doc/fix_heat_gran_conduction.txt                   |    29 +-
 doc/fix_insert_pack.html                           |   614 +-
 doc/fix_insert_pack.txt                            |    26 +-
 doc/fix_insert_rate_region.html                    |   596 +-
 doc/fix_insert_rate_region.txt                     |    31 +-
 doc/fix_insert_stream.html                         |   662 +-
 doc/fix_insert_stream.txt                          |    18 +-
 doc/fix_lineforce.html                             |   288 +-
 doc/fix_massflow_mesh.html                         |   391 +-
 doc/fix_massflow_mesh.txt                          |    12 +-
 doc/fix_massflow_mesh_sieve.html                   |   349 +-
 doc/fix_mesh_surface.html                          |   630 +-
 doc/fix_mesh_surface.txt                           |    70 +-
 doc/fix_mesh_surface_stress.html                   |    76 -
 doc/fix_mesh_surface_stress.txt                    |    65 -
 doc/fix_mesh_surface_stress_servo.html             |   112 -
 doc/fix_mesh_surface_stress_servo.txt              |   102 -
 doc/fix_modify.html                                |   305 +-
 doc/fix_momentum.html                              |   312 +-
 doc/fix_move.html                                  |   517 +-
 doc/fix_move_mesh.html                             |   585 +-
 doc/fix_move_mesh.txt                              |     8 +-
 doc/fix_multicontact_halfspace.html                |   311 +-
 doc/fix_multicontact_halfspace.txt                 |     4 +-
 doc/fix_multisphere.html                           |   355 +-
 doc/fix_multisphere_break.html                     |   311 +-
 doc/fix_nve.html                                   |   276 +-
 doc/fix_nve_asphere.html                           |   299 +-
 doc/fix_nve_asphere_noforce.html                   |   297 +-
 doc/fix_nve_limit.html                             |   333 +-
 doc/fix_nve_line.html                              |   294 +-
 doc/fix_nve_noforce.html                           |   292 +-
 doc/fix_nve_sphere.html                            |   313 +-
 doc/fix_particledistribution_discrete.html         |   332 +-
 doc/fix_particledistribution_discrete.txt          |     6 +-
 doc/fix_particletemplate_multisphere.html          |   394 +-
 doc/fix_particletemplate_multisphere.txt           |     9 +-
 doc/fix_particletemplate_sphere.html               |   326 +-
 doc/fix_particletemplate_sphere.txt                |     4 +-
 doc/fix_planeforce.html                            |   288 +-
 doc/fix_poems.html                                 |   333 +-
 doc/fix_poems.txt                                  |     6 +-
 doc/fix_print.html                                 |   339 +-
 doc/fix_property.html                              |   348 +-
 doc/fix_property_atom_region_tracer_time.html      |   273 +
 doc/fix_property_atom_region_tracer_time.txt       |    74 +
 doc/fix_property_atom_timetracer.html              |    82 -
 doc/fix_property_atom_timetracer.txt               |    73 -
 doc/fix_property_atom_tracer.html                  |   327 +-
 doc/fix_property_atom_tracer_stream.html           |   325 +-
 doc/fix_rigid.html                                 |   764 +-
 doc/fix_rigid.txt                                  |     2 +-
 doc/fix_setforce.html                              |   341 +-
 doc/fix_sph_density_continuity.html                |   326 +-
 doc/fix_sph_density_corr.html                      |   325 +-
 doc/fix_sph_density_summation.html                 |   326 +-
 doc/fix_sph_pressure.html                          |   297 +-
 doc/fix_sph_pressure.txt                           |     0
 doc/fix_spring.html                                |   389 +-
 doc/fix_spring_rg.html                             |   322 +-
 doc/fix_spring_self.html                           |   322 +-
 doc/fix_store_force.html                           |   303 +-
 doc/fix_store_state.html                           |   435 +-
 doc/fix_viscous.html                               |   340 +-
 doc/fix_wall_gran.html                             |   549 +-
 doc/fix_wall_reflect.html                          |   443 +-
 doc/fix_wall_region.html                           |   485 +-
 doc/fix_wall_region_sph.html                       |   268 +
 doc/genindex.html                                  |  1312 ++
 doc/githubAccess_non-public.html                   |   101 -
 doc/githubAccess_non-public.txt                    |    84 -
 doc/githubAccess_public.html                       |    55 -
 doc/githubAccess_public.txt                        |    46 -
 doc/gran_cohesion_easo_capillary_viscous.html      |   463 +-
 doc/gran_cohesion_easo_capillary_viscous.txt       |    18 +-
 doc/gran_cohesion_sjkr.html                        |   313 +-
 doc/gran_cohesion_sjkr.txt                         |     8 +
 doc/gran_cohesion_sjkr2.html                       |   321 +-
 doc/gran_cohesion_sjkr2.txt                        |    12 +
 doc/gran_cohesion_washino_capillary_viscous.html   |   472 +-
 doc/gran_cohesion_washino_capillary_viscous.txt    |    16 +-
 doc/gran_model_hertz.html                          |   409 +-
 doc/gran_model_hertz.txt                           |    34 +-
 doc/gran_model_hertz_stiffness.html                |   378 +-
 doc/gran_model_hertz_stiffness.txt                 |    10 +
 doc/gran_model_hooke.html                          |   485 +-
 doc/gran_model_hooke.txt                           |    29 +-
 doc/gran_model_hooke_stiffness.html                |   396 +-
 doc/gran_model_hooke_stiffness.txt                 |    10 +-
 doc/gran_rolling_friction_cdt.html                 |   296 +-
 doc/gran_rolling_friction_cdt.txt                  |    24 +-
 doc/gran_rolling_friction_epsd.html                |   334 +-
 doc/gran_rolling_friction_epsd.txt                 |    24 +-
 doc/gran_rolling_friction_epsd2.html               |   304 +-
 doc/gran_rolling_friction_epsd2.txt                |    24 +-
 doc/gran_rolling_friction_epsd3.html               |   351 +-
 doc/gran_rolling_friction_epsd3.txt                |    25 +-
 doc/gran_surface_multicontact.html                 |   254 +-
 doc/gran_surface_multicontact.txt                  |    10 +-
 doc/gran_surface_sphere.html                       |   244 +-
 doc/gran_surface_sphere.txt                        |     9 +
 doc/gran_tangential_history.html                   |   296 +-
 doc/gran_tangential_history.txt                    |    15 +
 doc/gran_tangential_no_history.html                |   290 +-
 doc/gran_tangential_no_history.txt                 |    31 +-
 doc/group.html                                     |   454 +-
 doc/group.txt                                      |     8 +-
 doc/if.html                                        |   459 +-
 doc/include.html                                   |   267 +-
 doc/info.html                                      |   331 +-
 doc/install_liggghts_windows.html                  |   456 +-
 doc/jump.html                                      |   366 +-
 doc/label.html                                     |   259 +-
 doc/lattice.html                                   |   500 +-
 doc/liggghts_2.X_tutorial.html                     |   556 +-
 doc/liggghts_3.X_tutorial.html                     |   399 +-
 doc/log.html                                       |   280 +-
 doc/make.bat                                       |   484 +-
 doc/mass.html                                      |   319 +-
 doc/mesh_module_liquidtransfer.html                |   273 +
 doc/mesh_module_liquidtransfer.txt                 |    73 +
 doc/mesh_module_servo.html                         |   299 +
 doc/mesh_module_servo.txt                          |   100 +
 doc/mesh_module_stress.html                        |   273 +
 doc/mesh_module_stress.txt                         |    71 +
 doc/neigh_modify.html                              |   476 +-
 doc/neigh_modify.txt                               |    28 +-
 doc/neighbor.html                                  |   334 +-
 doc/neighbor.txt                                   |    13 +-
 doc/newton.html                                    |   323 +-
 doc/next.html                                      |   389 +-
 doc/objects.inv                                    |   Bin 0 -> 1569 bytes
 doc/orient.html                                    |   284 +-
 doc/origin.html                                    |   271 +-
 doc/pair_coeff.html                                |   358 +-
 doc/pair_gran.html                                 |   439 +-
 doc/pair_hybrid.html                               |   426 +-
 doc/pair_none.html                                 |   262 +-
 doc/pair_soft.html                                 |   366 +-
 doc/pair_sph.html                                  |   335 +-
 doc/pair_sph_artvisc_tenscorr.html                 |   443 +-
 doc/pair_style.html                                |   333 +-
 doc/partition.html                                 |   297 +-
 doc/print.html                                     |   307 +-
 doc/processors.html                                |   645 +-
 doc/quit.html                                      |   282 +-
 doc/read_data.html                                 |  1229 +-
 doc/read_dump.html                                 |   593 +-
 doc/read_restart.html                              |   385 +-
 doc/region.html                                    |   743 +-
 doc/replicate.html                                 |   324 +-
 doc/replicate.txt                                  |    48 +-
 doc/reset_timestep.html                            |   286 +-
 doc/restart.html                                   |   390 +-
 doc/run.html                                       |   447 +-
 doc/run.txt                                        |     8 +-
 doc/run_style.html                                 |   418 +-
 doc/search.html                                    |   216 +
 doc/searchindex.js                                 |     1 +
 doc/set.html                                       |   718 +-
 doc/set.txt                                        |    20 +-
 doc/shell.html                                     |   354 +-
 doc/thermo.html                                    |   295 +-
 doc/thermo_modify.html                             |   386 +-
 doc/thermo_style.html                              |   591 +-
 doc/thermo_style.txt                               |     4 +-
 doc/timestep.html                                  |   285 +-
 doc/uncompute.html                                 |   262 +-
 doc/undump.html                                    |   276 +-
 doc/unfix.html                                     |   262 +-
 doc/units.html                                     |   572 +-
 doc/variable.html                                  |  1477 +-
 doc/variable.txt                                   |    18 +-
 doc/velocity.html                                  |   464 +-
 doc/write_data.html                                |   356 +-
 doc/write_dump.html                                |   332 +-
 doc/write_restart.html                             |   343 +-
 .../ParScale/fluidizedBedTempParScale/README.md    |    15 +
 .../ParScale/fluidizedBedTempParScale/cleanCase.sh |    38 +
 .../fluidizedBedTempParScale/codeInfo.pascal       |     6 +
 .../ParScale/fluidizedBedTempParScale/in.DEM       |    59 +
 .../fluidizedBedTempParScale/in.liggghts_init      |    99 +
 .../fluidizedBedTempParScale/in.liggghts_run       |   139 +
 .../fluidizedBedTempParScale/particle.data         |    12 +
 .../fluidizedBedTempParScale/particleFew.data      |    34 +
 .../fluidizedBedTempParScale/particleTemp.profile  |     3 +
 .../fluidizedBedTempParScale/pascal/0/heat.json    |    16 +
 .../pascal/0/heat_fewParticle.json                 |    16 +
 .../pascal/0/heat_multiParticle.json               |  1006 +
 .../pascal/0/heat_singleParticle.json              |     7 +
 .../fluidizedBedTempParScale/pascal/0/radius.json  |    16 +
 .../pascal/0/radius_fewParticle.json               |    16 +
 .../pascal/0/radius_multiParticle.json             |  1006 +
 .../pascal/0/radius_singleParticle.json            |     7 +
 .../pascal/genPascalInput.m                        |    58 +
 .../fluidizedBedTempParScale/pascal/in.pascal      |    19 +
 .../fluidizedBedTempParScale/pascal/plotMe.m       |    83 +
 .../pascal/settings/coupling_liggghts.json         |     7 +
 .../pascal/settings/integrator.json                |    18 +
 .../pascal/settings/model_heatCapacity_solid.json  |     8 +
 .../pascal/settings/model_heatDensity_solid.json   |     7 +
 .../model_heatThermalConductivity_solid.json       |     8 +
 .../fluidizedBedTempParScale/post/.gitignore       |     0
 .../fluidizedBedTempParScale/post/restart/.dummy   |     0
 .../post/restart/.gitignore                        |     0
 .../settings/parscale.json                         |     7 +
 .../ParScale/heatTransferBed_paScal/in.liggghts    |     2 +-
 .../Tutorials_public/chute_wear/in.chute_wear      |    80 +-
 .../chute_wear/meshes/insertion_face.stl           |    10 +-
 .../chute_wear/meshes/simple_chute.stl             | 22628 +++++++++----------
 .../LIGGGHTS/Tutorials_public/cohesion/in.cohesion |     2 +-
 .../Tutorials_public/cohesion/in.noCohesion        |     2 +-
 .../Tutorials_public/contactModels/in.newModels    |     2 +-
 .../Tutorials_public/contactModels/in.oldModels    |     2 +-
 .../LIGGGHTS/Tutorials_public/conveyor/in.conveyor |     2 +-
 .../Tutorials_public/conveyor/meshes/box.stl       |   144 +-
 .../Tutorials_public/conveyor/meshes/conveyor.stl  |    32 +-
 .../Tutorials_public/heatTransfer_1/in.heatGran    |     2 +-
 .../Tutorials_public/heatTransfer_2/in.heatGran    |     2 +-
 .../hydrogel_multicontact/data/input.data          |  1043 +
 .../hydrogel_multicontact/force_comparison.plot    |    20 +
 .../hydrogel_multicontact/in.hydrogel_default      |   103 +
 .../hydrogel_multicontact/in.hydrogel_multicontact |   105 +
 .../meshes/piston_hydrogel.stl                     |    16 +
 .../hydrogel_multicontact/post/.gitignore          |     2 +
 .../Tutorials_public/hysteresis/in.hysteresis      |     2 +-
 .../Tutorials_public/hysteresis/in.noHysteresis    |     2 +-
 .../insert_stream/in.insert_stream                 |     4 +-
 .../insert_stream/in.insert_stream_reset_timestep  |    13 +-
 .../Tutorials_public/insert_stream/meshes/face.stl |  1208 +-
 .../LIGGGHTS/Tutorials_public/meshGran/in.meshGran |     2 +-
 .../Tutorials_public/mesh_tet/data/test.vtk        |  6370 +++---
 .../LIGGGHTS/Tutorials_public/mesh_tet/in.mesh_tet |     2 +-
 .../movingMeshGran/in.movingMeshGran               |     2 +-
 .../movingMeshGran/meshes/bucket.stl               |   396 +-
 .../multisphere_stone_restitution/in.multisphere   |     3 +-
 .../LIGGGHTS/Tutorials_public/packing/in.packing   |     2 +-
 examples/LIGGGHTS/Tutorials_public/sph_1/in.sph_1  |     2 +-
 examples/LIGGGHTS/Tutorials_public/sph_2/in.sph_2  |     2 +-
 src/.gitignore                                     |    13 +
 src/ASPHERE/compute_erotate_asphere.cpp            |     7 +-
 src/ASPHERE/compute_erotate_asphere.h              |     2 +-
 src/CMakeLists.txt                                 |    18 +-
 src/MAKE/CMakeLists_Catalyst.txt                   |    30 +
 src/MAKE/Makefile.auto                             |   936 +
 src/MAKE/Makefile.fedora_vtk_fpic                  |   118 -
 src/MAKE/Makefile.fedora_vtk_fpic_debug            |   118 -
 src/MAKE/Makefile.lise_fpic                        |   118 +
 src/MAKE/Makefile.mpi                              |   123 +
 src/MAKE/Makefile.serial                           |    35 +-
 src/MAKE/Makefile.ubuntuVTK                        |   118 -
 src/MAKE/Makefile.ubuntuVTK6                       |   116 -
 src/MAKE/Makefile.ubuntuVTK_debug                  |   118 -
 src/MAKE/Makefile.ubuntuVTK_fpic                   |   118 -
 src/MAKE/Makefile.ubuntuVTK_fpic_debug             |   119 -
 src/MAKE/Makefile.ubuntu_15p10_vtk                 |   118 -
 src/MAKE/Makefile.ubuntu_15p10_vtk_debug           |   118 -
 src/MAKE/Makefile.ubuntu_15p10_vtk_fpic            |   118 -
 src/MAKE/Makefile.ubuntu_convex_vtk5p10            |   116 -
 src/MAKE/Makefile.user_default                     |   153 +
 src/MAKE/{ => deprecated}/Makefile.altix           |     0
 src/MAKE/{ => deprecated}/Makefile.bgl             |     0
 src/MAKE/{ => deprecated}/Makefile.chama           |     0
 src/MAKE/{ => deprecated}/Makefile.clang           |     0
 src/MAKE/{ => deprecated}/Makefile.cygwin          |     0
 src/MAKE/{ => deprecated}/Makefile.encanto         |     0
 src/MAKE/{ => deprecated}/Makefile.fedora          |     0
 src/MAKE/{ => deprecated}/Makefile.fedora_debug    |     0
 .../{ => deprecated}/Makefile.fedora_debug_opt     |     0
 src/MAKE/{ => deprecated}/Makefile.fedora_fpic     |     0
 .../{ => deprecated}/Makefile.fedora_fpic_debug    |     0
 src/MAKE/{ => deprecated}/Makefile.fedora_gp       |     0
 src/MAKE/deprecated/Makefile.fedora_vtk_fpic       |   118 +
 src/MAKE/deprecated/Makefile.fedora_vtk_fpic_debug |   118 +
 src/MAKE/{ => deprecated}/Makefile.fink            |     0
 src/MAKE/{ => deprecated}/Makefile.g++             |     0
 src/MAKE/{ => deprecated}/Makefile.g++3            |     0
 src/MAKE/{ => deprecated}/Makefile.g++_mingw64     |     0
 src/MAKE/{ => deprecated}/Makefile.glory           |     0
 src/MAKE/{ => deprecated}/Makefile.jaguar          |     0
 src/MAKE/{ => deprecated}/Makefile.lam             |     0
 src/MAKE/{ => deprecated}/Makefile.linux           |     0
 src/MAKE/{ => deprecated}/Makefile.mac             |     0
 src/MAKE/{ => deprecated}/Makefile.mac_mpi         |     0
 src/MAKE/{ => deprecated}/Makefile.mingw           |     0
 src/MAKE/{ => deprecated}/Makefile.mkl             |     0
 src/MAKE/{ => deprecated}/Makefile.odin            |     0
 src/MAKE/{ => deprecated}/Makefile.openmpi         |     0
 src/MAKE/{ => deprecated}/Makefile.pgi             |     0
 src/MAKE/{ => deprecated}/Makefile.power5          |     0
 src/MAKE/{ => deprecated}/Makefile.qed             |     0
 src/MAKE/{ => deprecated}/Makefile.redsky          |     0
 src/MAKE/{ => deprecated}/Makefile.sdsc            |     0
 src/MAKE/{ => deprecated}/Makefile.seaborg         |     0
 src/MAKE/{ => deprecated}/Makefile.serial_debug    |     0
 src/MAKE/{ => deprecated}/Makefile.sgi             |     0
 src/MAKE/{ => deprecated}/Makefile.solaris         |     0
 src/MAKE/{ => deprecated}/Makefile.spirit          |     0
 src/MAKE/{ => deprecated}/Makefile.storm           |     0
 src/MAKE/{ => deprecated}/Makefile.tacc            |     0
 src/MAKE/{ => deprecated}/Makefile.tbird           |     0
 src/MAKE/{ => deprecated}/Makefile.tesla           |     0
 src/MAKE/{ => deprecated}/Makefile.tunnison        |     0
 src/MAKE/deprecated/Makefile.ubuntuVTK             |   119 +
 src/MAKE/deprecated/Makefile.ubuntuVTK6            |   116 +
 src/MAKE/deprecated/Makefile.ubuntuVTKConvex       |   116 +
 src/MAKE/deprecated/Makefile.ubuntuVTKConvex_debug |   116 +
 src/MAKE/deprecated/Makefile.ubuntuVTK_debug       |   118 +
 src/MAKE/deprecated/Makefile.ubuntuVTK_fpic        |   118 +
 src/MAKE/deprecated/Makefile.ubuntuVTK_fpic_debug  |   119 +
 src/MAKE/{ => deprecated}/Makefile.xe6             |     0
 src/MAKE/{ => deprecated}/Makefile.xt3             |     0
 src/MAKE/{ => deprecated}/Makefile.xt5             |     0
 src/MAKE/deprecated/_README                        |     3 +
 src/Make.sh                                        |   254 +-
 src/Makefile                                       |    36 +-
 src/Makefile.lib                                   |    33 +-
 src/Makefile.list                                  |    33 +-
 src/Makefile.shlib                                 |    39 +-
 src/PASCAL/fix_pascal_couple.cpp                   |     9 +-
 src/POEMS/Install.sh                               |    19 +-
 src/STUBS/mpi.c                                    |     9 +
 src/STUBS/mpi.h                                    |     2 +
 src/VORONOI/compute_voronoi_atom.cpp               |     5 +-
 src/VORONOI/compute_voronoi_atom.h                 |     2 +-
 src/WINDOWS/GenerateHeaders.bat                    |    16 -
 src/WINDOWS/extra/dirent.h                         |   372 -
 src/WINDOWS/extra/erf.h                            |    20 -
 src/WINDOWS/extra/erf_namd.c                       |   345 -
 src/WINDOWS/extra/fftw2/FFTW2dll.dll               |   Bin 263168 -> 0 bytes
 src/WINDOWS/extra/fftw2/FFTW2dll.lib               |   Bin 22998 -> 0 bytes
 src/WINDOWS/extra/fftw2/FFTW2st.lib                |   Bin 404572 -> 0 bytes
 src/WINDOWS/extra/fftw2/RFFTW2dll.dll              |   Bin 481792 -> 0 bytes
 src/WINDOWS/extra/fftw2/RFFTW2dll.lib              |   Bin 35830 -> 0 bytes
 src/WINDOWS/extra/fftw2/RFFTW2st.lib               |   Bin 337962 -> 0 bytes
 src/WINDOWS/extra/fftw2/fftw.h                     |   421 -
 src/WINDOWS/extra/fftw2/x64/FFTW2dll.dll           |   Bin 228864 -> 0 bytes
 src/WINDOWS/extra/fftw2/x64/FFTW2dll.lib           |   Bin 9588 -> 0 bytes
 src/WINDOWS/extra/fftw2/x64/FFTW2st.lib            |   Bin 797762 -> 0 bytes
 src/WINDOWS/extra/fftw2/x64/RFFTW2dll.dll          |   Bin 411648 -> 0 bytes
 src/WINDOWS/extra/fftw2/x64/RFFTW2dll.lib          |   Bin 14618 -> 0 bytes
 src/WINDOWS/extra/fftw2/x64/RFFTW2st.lib           |   Bin 668694 -> 0 bytes
 src/WINDOWS/extra/inttypes.h                       |   305 -
 src/WINDOWS/extra/sleep.cpp                        |    10 -
 src/WINDOWS/extra/sleep.h                          |     1 -
 src/WINDOWS/extra/stdint.h                         |   247 -
 src/WINDOWS/extra/sys/time.h                       |    28 -
 src/WINDOWS/extra/unistd.h                         |     4 -
 src/abstract_mesh.h                                |    25 +-
 src/angle.cpp                                      |     4 +-
 src/associative_pointer_array.h                    |    19 +-
 src/associative_pointer_array_I.h                  |    74 +-
 src/atom.cpp                                       |    39 +-
 src/atom.h                                         |     1 +
 src/cfd_datacoupling.cpp                           |     4 +-
 src/cfd_datacoupling.h                             |     4 +-
 src/cfd_datacoupling_file.cpp                      |    35 +-
 src/cfd_datacoupling_mpi.cpp                       |     4 +-
 src/cfd_datacoupling_mpi.h                         |     4 +-
 src/change_box.cpp                                 |    14 +-
 src/cleanAllNonSpherical.sh                        |     3 +
 src/cleanAllParScale.sh                            |     3 +
 src/cohesion_model_base.h                          |   106 +
 src/cohesion_model_easo_capillary_viscous.h        |   108 +-
 src/cohesion_model_sjkr.h                          |    28 +-
 src/cohesion_model_sjkr2.h                         |    28 +-
 src/cohesion_model_washino_capillary_viscous.h     |   197 +-
 src/compute.cpp                                    |    22 +-
 src/compute.h                                      |    14 +-
 src/compute_atom_molecule.cpp                      |    10 +-
 src/compute_atom_molecule.h                        |     2 +-
 src/compute_bond_local.cpp                         |    21 +-
 src/compute_bond_local.h                           |     2 +-
 src/compute_centro_atom.cpp                        |    17 +-
 src/compute_centro_atom.h                          |     2 +-
 src/compute_cluster_atom.cpp                       |     8 +-
 src/compute_cluster_atom.h                         |     2 +-
 src/compute_cna_atom.cpp                           |     9 +-
 src/compute_cna_atom.h                             |     2 +-
 src/compute_com.cpp                                |     6 +-
 src/compute_com.h                                  |     2 +-
 src/compute_com_molecule.cpp                       |     6 +-
 src/compute_com_molecule.h                         |     2 +-
 src/compute_contact_atom.cpp                       |    20 +-
 src/compute_contact_atom.h                         |     2 +-
 src/compute_coord_atom.cpp                         |    27 +-
 src/compute_coord_atom.h                           |     2 +-
 src/compute_displace_atom.cpp                      |     6 +-
 src/compute_displace_atom.h                        |     2 +-
 src/compute_erotate.cpp                            |   197 +
 src/compute_erotate.h                              |    84 +
 src/compute_erotate_multisphere.cpp                |     6 +-
 src/compute_erotate_multisphere.h                  |     2 +-
 src/compute_erotate_sphere.cpp                     |    78 +-
 src/compute_erotate_sphere.h                       |     5 +-
 src/compute_erotate_sphere_atom.cpp                |     7 +-
 src/compute_erotate_sphere_atom.h                  |     2 +-
 src/compute_group_group.cpp                        |    12 +-
 src/compute_group_group.h                          |     2 +-
 src/compute_gyration.cpp                           |     6 +-
 src/compute_gyration.h                             |     2 +-
 src/compute_gyration_molecule.cpp                  |     8 +-
 src/compute_gyration_molecule.h                    |     2 +-
 src/compute_inertia_molecule.cpp                   |     7 +-
 src/compute_inertia_molecule.h                     |     2 +-
 src/compute_ke.cpp                                 |    95 +-
 src/compute_ke.h                                   |     3 +-
 src/compute_ke_atom.cpp                            |     6 +-
 src/compute_ke_atom.h                              |     2 +-
 src/compute_ke_multisphere.cpp                     |     7 +-
 src/compute_ke_multisphere.h                       |     2 +-
 src/compute_msd.cpp                                |     7 +-
 src/compute_msd.h                                  |     2 +-
 src/compute_msd_molecule.cpp                       |     6 +-
 src/compute_msd_molecule.h                         |     2 +-
 src/compute_nparticles_tracer_region.cpp           |     7 +-
 src/compute_nparticles_tracer_region.h             |     2 +-
 src/compute_pair_gran_local.cpp                    |   123 +-
 src/compute_pair_gran_local.h                      |    17 +-
 src/compute_pe.cpp                                 |     9 +-
 src/compute_pe.h                                   |     2 +-
 src/compute_pe_atom.cpp                            |     9 +-
 src/compute_pe_atom.h                              |     2 +-
 src/compute_pressure.cpp                           |    14 +-
 src/compute_pressure.h                             |     2 +-
 src/compute_property_atom.cpp                      |    46 +-
 src/compute_property_atom.h                        |     4 +-
 src/compute_property_local.cpp                     |    13 +-
 src/compute_property_local.h                       |     2 +-
 src/compute_property_molecule.cpp                  |    14 +-
 src/compute_property_molecule.h                    |     2 +-
 src/compute_rdf.cpp                                |    15 +-
 src/compute_rdf.h                                  |     2 +-
 src/compute_reduce.cpp                             |    33 +-
 src/compute_reduce.h                               |     2 +-
 src/compute_reduce_region.cpp                      |     9 +-
 src/compute_reduce_region.h                        |     2 +-
 src/compute_rigid.cpp                              |   191 +-
 src/compute_rigid.h                                |     8 +-
 src/compute_slice.cpp                              |    25 +-
 src/compute_slice.h                                |     2 +-
 src/compute_stress_atom.cpp                        |     9 +-
 src/compute_stress_atom.h                          |     2 +-
 src/compute_surface.cpp                            |     7 +-
 src/compute_surface.h                              |     2 +-
 src/compute_temp.cpp                               |     6 +-
 src/compute_temp.h                                 |     2 +-
 src/contact_interface.h                            |    39 +-
 src/contact_model_base.h                           |    76 +
 src/contact_model_constants.h                      |    96 +-
 src/contact_models.cpp                             |   179 +-
 src/contact_models.h                               |   567 +-
 src/container_base.cpp                             |    37 +-
 src/container_base.h                               |    61 +-
 src/container_base_I.h                             |     9 +
 src/create_box.cpp                                 |    20 +-
 src/custom_value_tracker.cpp                       |     8 +-
 src/custom_value_tracker.h                         |   190 +-
 src/custom_value_tracker_I.h                       |   137 +-
 src/delete_atoms.cpp                               |     4 +
 src/displace_atoms.cpp                             |    10 +-
 src/domain.cpp                                     |   187 +-
 src/domain.h                                       |     6 +-
 src/dump.cpp                                       |   438 +-
 src/dump.h                                         |    23 +-
 src/dump_atom_vtk.cpp                              |    38 +-
 src/dump_atom_vtk.h                                |    11 +-
 src/dump_custom.cpp                                |     1 -
 src/dump_custom_vtk.cpp                            |  3267 +--
 src/dump_custom_vtk.h                              |   154 +-
 src/dump_custom_vtm.cpp                            |   602 +
 src/dump_custom_vtm.h                              |   288 +
 src/dump_euler_vtk.cpp                             |     2 +-
 src/dump_image.cpp                                 |     2 +-
 src/dump_local.cpp                                 |     3 +-
 src/dump_local_gran.cpp                            |   801 +
 src/dump_local_gran.h                              |   162 +
 src/dump_local_gran_vtk.cpp                        |   705 +-
 src/dump_local_gran_vtk.h                          |    62 +-
 src/dump_mesh.cpp                                  |   928 +
 src/dump_mesh.h                                    |   133 +
 src/dump_mesh_vtk.cpp                              |    83 +-
 src/dump_mesh_vtk.h                                |     2 +
 src/dump_particle.cpp                              |  3225 +++
 src/dump_particle.h                                |   434 +
 src/dump_vtk.cpp                                   |   134 +
 src/dump_vtk.h                                     |    84 +
 src/dump_xyz.cpp                                   |     3 +-
 src/error.cpp                                      |    78 +-
 src/error.h                                        |     4 +
 src/error_special.h                                |   138 +
 src/finish.cpp                                     |    11 +-
 src/fix.cpp                                        |    18 +-
 src/fix.h                                          |    52 +-
 src/fix_adapt.cpp                                  |     2 +
 src/fix_ave_atom.cpp                               |     2 -
 src/fix_ave_correlate.cpp                          |     4 -
 src/fix_ave_euler.cpp                              |    29 +-
 src/fix_ave_histo.cpp                              |     6 -
 src/fix_ave_spatial.cpp                            |    27 +-
 src/fix_ave_time.cpp                               |     4 -
 src/fix_base_liggghts.cpp                          |     4 +-
 src/fix_calculate_energy_wall.h                    |     2 +
 src/fix_cfd_coupling_convection.cpp                |    70 +-
 src/fix_cfd_coupling_convection.h                  |    10 +-
 src/fix_cfd_coupling_force.cpp                     |    53 +-
 src/fix_cfd_coupling_force.h                       |     2 +-
 src/fix_cfd_coupling_force_implicit.cpp            |     1 +
 src/fix_check_timestep_gran.cpp                    |    69 +-
 src/fix_contact_history.cpp                        |    36 +-
 src/fix_contact_history.h                          |     3 +
 src/fix_contact_history_mesh.cpp                   |    44 +-
 src/fix_contact_history_mesh.h                     |     4 +-
 src/fix_contact_history_mesh_I.h                   |     4 +-
 src/fix_contact_property_atom.cpp                  |     2 +-
 src/fix_contact_property_atom.h                    |     3 +
 src/fix_contact_property_atom_wall.cpp             |    11 +-
 src/fix_contact_property_atom_wall.h               |    23 +-
 src/fix_dummy.h                                    |   109 +
 src/fix_heat_gran.cpp                              |    15 +-
 src/fix_heat_gran.h                                |     2 +-
 src/fix_heat_gran_conduction.cpp                   |   160 +-
 src/fix_heat_gran_conduction.h                     |    18 +-
 src/fix_insert.cpp                                 |    56 +-
 src/fix_insert.h                                   |    17 +-
 src/fix_insert_pack.cpp                            |    20 +-
 src/fix_insert_pack.h                              |     3 +
 src/fix_insert_rate_region.cpp                     |     5 +-
 src/fix_insert_stream.cpp                          |   110 +-
 src/fix_insert_stream.h                            |    14 +
 src/fix_insert_stream_predefined.h                 |     2 +
 src/fix_massflow_mesh.cpp                          |    95 +-
 src/fix_massflow_mesh.h                            |    13 +-
 src/fix_massflow_mesh_sieve.cpp                    |    32 +-
 src/fix_massflow_mesh_sieve.h                      |     2 -
 src/fix_mesh.cpp                                   |   137 +-
 src/fix_mesh.h                                     |    41 +-
 src/fix_mesh_surface.cpp                           |   571 +-
 src/fix_mesh_surface.h                             |    82 +-
 src/fix_mesh_surface_stress.cpp                    |   442 -
 src/fix_mesh_surface_stress.h                      |   172 -
 src/fix_mesh_surface_stress_servo.h                |   144 -
 src/fix_move.cpp                                   |     6 +-
 src/fix_move_mesh.cpp                              |    52 +-
 src/fix_move_mesh.h                                |    10 +-
 src/fix_multicontact_halfspace.cpp                 |     4 +-
 src/fix_multisphere.cpp                            |   268 +-
 src/fix_multisphere.h                              |    36 +-
 src/fix_multisphere_break.cpp                      |     9 +-
 src/fix_multisphere_break.h                        |     4 +-
 src/fix_neighlist_mesh.cpp                         |    12 +-
 src/fix_nve_sphere.cpp                             |     1 +
 src/fix_particledistribution_discrete.cpp          |   135 +-
 src/fix_particledistribution_discrete.h            |    18 +
 src/fix_print.cpp                                  |     6 +-
 src/fix_property_atom.cpp                          |    11 +-
 src/fix_property_atom.h                            |     4 +-
 src/fix_property_atom_region_tracer.cpp            |   273 +
 src/fix_property_atom_region_tracer.h              |    89 +
 src/fix_property_atom_timetracer.cpp               |   234 -
 src/fix_property_atom_timetracer.h                 |    81 -
 src/fix_property_atom_tracer_stream.cpp            |    10 +-
 src/fix_property_atom_tracer_stream.h              |     9 +-
 src/fix_property_global.cpp                        |    22 +-
 src/fix_property_global.h                          |     1 +
 src/fix_store_state.cpp                            |     2 -
 src/fix_template_multiplespheres.cpp               |   140 +-
 src/fix_template_multiplespheres.h                 |    40 +-
 src/fix_template_multisphere.cpp                   |    80 +-
 src/fix_template_multisphere.h                     |     2 +-
 src/fix_template_sphere.cpp                        |   333 +-
 src/fix_template_sphere.h                          |   124 +-
 src/fix_wall_gran.cpp                              |   279 +-
 src/fix_wall_gran.h                                |    18 +-
 src/fix_wall_gran_base.h                           |   159 +-
 src/force.cpp                                      |    10 +-
 src/force.h                                        |    97 +-
 src/general_container.h                            |    11 +-
 src/general_container_I.h                          |  1397 +-
 src/global_properties.cpp                          |   241 +-
 src/global_properties.h                            |   145 +-
 src/granular_pair_style.h                          |     2 +-
 src/granular_styles.cpp                            |   131 -
 src/granular_styles.h                              |   153 +
 src/granular_wall.h                                |     2 +-
 src/group.cpp                                      |   228 +-
 src/group.h                                        |     4 +
 src/input.cpp                                      |    59 +-
 src/input.h                                        |     3 +-
 src/input_mesh_tri.cpp                             |    16 +-
 src/lammps.cpp                                     |   121 +-
 src/lammps.h                                       |     4 +
 src/library.cpp                                    |    18 +-
 src/library.h                                      |    16 +-
 src/library_cfd_coupling.cpp                       |    14 +-
 src/library_cfd_coupling.h                         |     8 +-
 src/lmpwindows.h                                   |     4 +-
 src/main.cpp                                       |    28 +
 src/math_const.h                                   |     1 +
 src/math_extra.cpp                                 |    16 +-
 src/math_extra.h                                   |    12 +-
 src/math_extra_liggghts.h                          |    40 +-
 src/mesh_module.cpp                                |    57 +
 src/mesh_module.h                                  |    93 +
 src/mesh_module_liquidtransfer.cpp                 |   210 +
 src/mesh_module_liquidtransfer.h                   |   113 +
 src/mesh_module_stress.cpp                         |   441 +
 src/mesh_module_stress.h                           |   195 +
 src/mesh_module_stress_servo.cpp                   |   734 +
 src/mesh_module_stress_servo.h                     |   152 +
 src/mesh_mover.cpp                                 |   722 -
 src/mesh_mover.h                                   |   443 +-
 src/mesh_mover_linear.cpp                          |   364 +
 src/mesh_mover_linear.h                            |   156 +
 src/mesh_mover_rotation.cpp                        |   420 +
 src/mesh_mover_rotation.h                          |   157 +
 src/min.cpp                                        |     8 +-
 src/modified_andrew.cpp                            |    20 +-
 src/modified_andrew.h                              |    14 +-
 src/modify.cpp                                     |   118 +-
 src/modify.h                                       |    19 +-
 src/modify_liggghts.cpp                            |    87 +
 src/mpi_liggghts.h                                 |     2 +-
 src/multi_node_mesh.h                              |    42 +-
 src/multi_node_mesh_I.h                            |   108 +-
 src/multi_node_mesh_parallel.h                     |    29 +-
 src/multi_node_mesh_parallel_I.h                   |   206 +-
 src/multi_node_mesh_parallel_buffer_I.h            |    59 +-
 src/multisphere.cpp                                |    30 +-
 src/multisphere.h                                  |    11 +-
 src/multisphere_I.h                                |    17 +
 src/multisphere_parallel.cpp                       |     2 +-
 src/neigh_modify.h                                 |    71 +
 src/neighbor.cpp                                   |    53 +-
 src/neighbor.h                                     |    21 +-
 src/nonspherical_flags.h                           |    18 -
 src/normal_model_base.h                            |   107 +
 src/normal_model_hertz.h                           |   326 +-
 src/normal_model_hertz_stiffness.h                 |    46 +-
 src/normal_model_hooke.h                           |   287 +-
 src/normal_model_hooke_hysteresis.h                |    48 +-
 src/normal_model_hooke_stiffness.h                 |    30 +-
 src/output.cpp                                     |   134 +-
 src/output.h                                       |    49 +-
 src/pair.cpp                                       |    22 +-
 src/pair_gran.cpp                                  |    27 +
 src/pair_gran.h                                    |    44 +-
 src/pair_gran_base.h                               |    73 +-
 src/pair_gran_proxy.cpp                            |    25 +-
 src/particleToInsert.cpp                           |    53 +-
 src/particleToInsert.h                             |    23 +-
 src/particleToInsert_multisphere.cpp               |    21 +-
 src/particleToInsert_multisphere.h                 |     2 +
 src/primitive_wall_definitions.h                   |    11 +-
 src/probability_distribution.h                     |    90 +-
 src/properties.cpp                                 |    38 +-
 src/properties.h                                   |     9 +
 src/random_park.cpp                                |    13 +-
 src/read_dump.cpp                                  |    65 +-
 src/reader_native.cpp                              |    17 +-
 src/region.cpp                                     |     5 +-
 src/region.h                                       |     2 +-
 src/region_mesh_tet.cpp                            |     2 +-
 src/region_neighbor_list.h                         |    44 +-
 src/region_neighbor_list_I.h                       |   169 +-
 src/region_neighbor_list_base.h                    |    76 +
 src/region_neighbor_list_definitions.h             |    64 +-
 src/replicate.cpp                                  |   460 +-
 src/respa.cpp                                      |     4 +
 src/rolling_model_base.h                           |   102 +
 src/rolling_model_cdt.h                            |    58 +-
 src/rolling_model_epsd.h                           |   121 +-
 src/rolling_model_epsd2.h                          |    72 +-
 src/rolling_model_epsd3.h                          |    93 +-
 src/run.cpp                                        |    51 +-
 src/run.h                                          |    12 +-
 src/run_time.cpp                                   |    97 +
 src/run_time.h                                     |   118 +
 src/set.cpp                                        |    94 +-
 src/settings.h                                     |    43 +-
 src/signal_handling.cpp                            |   113 +
 src/signal_handling.h                              |    59 +
 src/sort_buffer.cpp                                |   486 +
 src/sort_buffer.h                                  |   104 +
 src/string_liggghts.h                              |    16 +
 src/style_angle.h                                  |     1 -
 src/style_atom.h                                   |     8 -
 src/style_bond.h                                   |     1 -
 src/style_cfd_datacoupling.h                       |     2 -
 src/style_cohesion_model.h                         |     4 -
 src/style_command.h                                |    18 -
 src/style_compute.h                                |    38 -
 src/style_contact_model.h                          |   750 -
 src/style_dihedral.h                               |     1 -
 src/style_dump.h                                   |    12 -
 src/style_fix.h                                    |    95 -
 src/style_improper.h                               |     1 -
 src/style_integrate.h                              |     2 -
 src/style_lb.h                                     |     0
 src/style_minimize.h                               |     1 -
 src/style_normal_model.h                           |     5 -
 src/style_pair.h                                   |     7 -
 src/style_reader.h                                 |     2 -
 src/style_region.h                                 |    10 -
 src/style_rolling_model.h                          |     4 -
 src/style_sph_kernel.h                             |     6 -
 src/style_surface_model.h                          |     2 -
 src/style_tangential_model.h                       |     2 -
 src/superquadric_flag.h                            |     8 -
 src/surface_mesh.h                                 |    15 +-
 src/surface_mesh_I.h                               |   269 +-
 src/surface_model_base.h                           |   127 +
 src/surface_model_default.h                        |    92 +-
 src/surface_model_multicontact.h                   |    62 +-
 src/tangential_model_base.h                        |   102 +
 src/tangential_model_history.h                     |    23 +-
 src/tangential_model_no_history.h                  |   209 +-
 src/thermo.cpp                                     |    57 +-
 src/thermo.h                                       |     4 +
 src/tracking_mesh.h                                |    50 +-
 src/tracking_mesh_I.h                              |    62 +-
 src/tri_mesh.h                                     |     5 +-
 src/tri_mesh_planar_I.h                            |    32 +-
 src/update.cpp                                     |     5 +
 src/update.h                                       |     5 +
 src/utils.h                                        |    41 +-
 src/variable.cpp                                   |    38 +-
 src/vector_liggghts.h                              |   311 +-
 src/verlet.cpp                                     |    26 +-
 src/version_liggghts.h                             |     1 -
 src/version_liggghts.txt                           |     2 +-
 src/volume_mesh.h                                  |     8 +-
 src/volume_mesh_I.h                                |     8 +-
 src/write_data.cpp                                 |     1 +
 src/write_restart.cpp                              |     2 +
 1012 files changed, 135480 insertions(+), 66986 deletions(-)

diff --cc src/domain.h
index 2fc9141,c390852..ace2984
--- a/src/domain.h
+++ b/src/domain.h
@@@ -162,12 -164,9 +164,12 @@@ class Domain : protected Pointers 
    void set_lattice(int, char **);
    void add_region(int, char **);
    void delete_region(int, char **);
-   int find_region(char *);
+   int find_region(const char *);
    virtual void set_boundary(int, char **, int); 
 +<<<<<<< HEAD
 +=======
    void set_box(int, char **);
 +>>>>>>> upstream/3.0.0
    virtual void print_box(const char *); 
    void boundary_string(char *);
  
diff --cc src/general_container_I.h
index 67cc7f2,4a179b2..0090ac6
--- a/src/general_container_I.h
+++ b/src/general_container_I.h
@@@ -45,899 -45,875 +45,942 @@@
  #ifndef LMP_GENERAL_CONTAINER_I_H
  #define LMP_GENERAL_CONTAINER_I_H
  
++<<<<<<< HEAD
 +  /* ----------------------------------------------------------------------
 +   constructors
 +  ------------------------------------------------------------------------- */
 +
 +  template<typename T, int NUM_VEC, int LEN_VEC>
 +<<<<<<< HEAD
 +  GeneralContainer<T,NUM_VEC,LEN_VEC>::GeneralContainer(char *_id)
 +=======
 +  GeneralContainer<T,NUM_VEC,LEN_VEC>::GeneralContainer(const char *_id)
 +>>>>>>> upstream/3.0.0
 +  : ContainerBase(_id),
 +    numElem_(0),
 +    maxElem_(GROW_CONTAINER()),
 +    defaultValue_(0)
 +  {
 +          create<T>(arr_,GROW_CONTAINER(),NUM_VEC,LEN_VEC);
 +  }
 +
 +  template<typename T, int NUM_VEC, int LEN_VEC>
 +  GeneralContainer<T,NUM_VEC,LEN_VEC>::GeneralContainer(const char *_id, const char *_comm, const char *_ref, const char *_restart, int _scalePower)
 +  : ContainerBase(_id, _comm, _ref, _restart, _scalePower),
 +    numElem_(0),
 +    maxElem_(GROW_CONTAINER()),
 +    defaultValue_(0)
 +  {
 +          create<T>(arr_,GROW_CONTAINER(),NUM_VEC,LEN_VEC);
 +  }
 +
 +  template<typename T, int NUM_VEC, int LEN_VEC>
 +  GeneralContainer<T,NUM_VEC,LEN_VEC>::GeneralContainer(GeneralContainer<T,NUM_VEC,LEN_VEC> const &orig)
 +  : ContainerBase(orig),
 +    numElem_(orig.numElem_),
 +    maxElem_(orig.numElem_),
 +    defaultValue_(orig.defaultValue_)
 +  {
 +          create<T>(arr_,maxElem_,NUM_VEC,LEN_VEC);
 +          for(int i=0;i<maxElem_;i++)
 +                  for(int ii=0;ii<NUM_VEC;ii++)
 +                          for(int jj=0;jj<LEN_VEC;jj++)
 +                                  arr_[i][ii][jj] = orig.arr_[i][ii][jj];
 +  }
 +
 +  /* ----------------------------------------------------------------------
 +   destructor
 +  ------------------------------------------------------------------------- */
 +
 +  template<typename T, int NUM_VEC, int LEN_VEC>
 +  GeneralContainer<T,NUM_VEC,LEN_VEC>::~GeneralContainer()
 +  {
 +          destroy<T>(arr_);
 +  }
 +
 +  /* ----------------------------------------------------------------------
 +   check if data is of type double
 +  ------------------------------------------------------------------------- */
 +
 +  template<typename T, int NUM_VEC, int LEN_VEC>
 +  bool GeneralContainer<T,NUM_VEC,LEN_VEC>::isDoubleData()
 +  {
 +      // partial templatization does not work
 +      // std::is_same<T,double>::value is from C++11
 +      // this is work-around
 +
 +      if(sizeof(T) == sizeof(double))
++=======
+ /* ----------------------------------------------------------------------
+ constructors
+ ------------------------------------------------------------------------- */
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ GeneralContainer<T,NUM_VEC,LEN_VEC>::GeneralContainer(const char *_id)
+ : ContainerBase(_id),
+ numElem_(0),
+ maxElem_(GROW_CONTAINER()),
+ defaultValue_(0)
+ {
+     create<T>(arr_,GROW_CONTAINER(),NUM_VEC,LEN_VEC);
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ GeneralContainer<T,NUM_VEC,LEN_VEC>::GeneralContainer(const char *_id, const char *_comm, const char *_ref, const char *_restart, int _scalePower)
+ : ContainerBase(_id, _comm, _ref, _restart, _scalePower),
+ numElem_(0),
+ maxElem_(GROW_CONTAINER()),
+ defaultValue_(0)
+ {
+     create<T>(arr_,GROW_CONTAINER(),NUM_VEC,LEN_VEC);
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ GeneralContainer<T,NUM_VEC,LEN_VEC>::GeneralContainer(GeneralContainer<T,NUM_VEC,LEN_VEC> const &orig)
+ : ContainerBase(orig),
+ numElem_(orig.numElem_),
+ maxElem_(orig.numElem_),
+ defaultValue_(orig.defaultValue_)
+ {
+     create<T>(arr_,maxElem_,NUM_VEC,LEN_VEC);
+     for(int i=0;i<maxElem_;i++)
+         for(int ii=0;ii<NUM_VEC;ii++)
+             for(int jj=0;jj<LEN_VEC;jj++)
+                 arr_[i][ii][jj] = orig.arr_[i][ii][jj];
+ }
+ 
+ /* ----------------------------------------------------------------------
+ destructor
+ ------------------------------------------------------------------------- */
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ GeneralContainer<T,NUM_VEC,LEN_VEC>::~GeneralContainer()
+ {
+     destroy<T>(arr_);
+ }
+ 
+ /* ----------------------------------------------------------------------
+ check if data is of type double
+ ------------------------------------------------------------------------- */
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ bool GeneralContainer<T,NUM_VEC,LEN_VEC>::isDoubleData()
+ {
+     // partial templatization does not work
+     // std::is_same<T,double>::value is from C++11
+     // this is work-around
+ 
+     if(sizeof(T) == sizeof(double))
++>>>>>>> upstream/3.7.0+repack1
          return true;
-       else
+     else
          return false;
-   }
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   bool GeneralContainer<T,NUM_VEC,LEN_VEC>::isIntData()
-   {
-       // partial templatization does not work
-       // std::is_same<T,double>::value is from C++11
-       // this is work-around
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ bool GeneralContainer<T,NUM_VEC,LEN_VEC>::isIntData()
+ {
+     // partial templatization does not work
+     // std::is_same<T,double>::value is from C++11
+     // this is work-around
  
-       if(sizeof(T) == sizeof(int))
+     if(sizeof(T) == sizeof(int))
          return true;
-       else
+     else
          return false;
-   }
+ }
  
-   /* ----------------------------------------------------------------------
-    add element(s)
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ add element(s)
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   bool GeneralContainer<T,NUM_VEC,LEN_VEC>::subtract(GeneralContainer<T,NUM_VEC,LEN_VEC> const &A,
-                                                      GeneralContainer<T,NUM_VEC,LEN_VEC> const &minusB)
-   {
-       int len = size();
-       int lenA = A.size();
-       int lenB = minusB.size();
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ bool GeneralContainer<T,NUM_VEC,LEN_VEC>::subtract(GeneralContainer<T,NUM_VEC,LEN_VEC> const &A,
+                                                    GeneralContainer<T,NUM_VEC,LEN_VEC> const &minusB)
+ {
+     int len = size();
+     int lenA = A.size();
+     int lenB = minusB.size();
  
-       if(lenA != lenB)
+     if(lenA != lenB)
          return false;
  
-       if(len < lenA)
+     if(len < lenA)
          addUninitialized(lenA-len);
  
-       for(int i = 0; i < len; i++)
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     arr_[i][j][k] = A(i)[j][k] - minusB(i)[j][k];
- 
-       return true;
-   }
- 
-   /* ----------------------------------------------------------------------
-    add element(s)
-   ------------------------------------------------------------------------- */
- 
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::add(T** elem)
-   {
-           if(numElem_ == maxElem_)
-           {
-                   grow<T>(arr_,maxElem_+GROW_CONTAINER(),NUM_VEC,LEN_VEC);
-                   maxElem_ += GROW_CONTAINER();
-           }
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                           arr_[numElem_][i][j] = elem[i][j];
-           numElem_++;
-   }
- 
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::addZero()
-   {
-           if(numElem_ == maxElem_)
-           {
-                   grow<T>(arr_,maxElem_+GROW_CONTAINER(),NUM_VEC,LEN_VEC);
-                   maxElem_ += GROW_CONTAINER();
-           }
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                           arr_[numElem_][i][j] = static_cast<T>(0);
-           numElem_++;
-   }
+     for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 arr_[i][j][k] = A(i)[j][k] - minusB(i)[j][k];
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::addUninitialized(int n)
-   {
-         numElem_ += n;
-         if(numElem_ >= maxElem_)
-         {
-             T init_val = static_cast<T>(0);
-             grow(arr_,numElem_+GROW_CONTAINER(),NUM_VEC,LEN_VEC);
-             for(int i = numElem_; i < numElem_+GROW_CONTAINER(); i++)
-                 for(int j=0;j<NUM_VEC;j++)
-                     for(int k=0;k<LEN_VEC;k++)
-                           arr_[i][j][k] = init_val;
-             maxElem_ = numElem_ + GROW_CONTAINER();
-         }
-   }
+     return true;
+ }
  
-   /* ----------------------------------------------------------------------
-    delete an element
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ add element(s)
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::del(int n)
-   {
-           
-           numElem_--;
-           if(numElem_ == n) return;
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                           arr_[n][i][j] = arr_[numElem_][i][j];
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::add(T** elem)
+ {
+     if(numElem_ == maxElem_)
+     {
+         grow<T>(arr_,maxElem_+GROW_CONTAINER(),NUM_VEC,LEN_VEC);
+         maxElem_ += GROW_CONTAINER();
+     }
+     for(int i=0;i<NUM_VEC;i++)
+         for(int j=0;j<LEN_VEC;j++)
+             arr_[numElem_][i][j] = elem[i][j];
+     numElem_++;
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::addZero()
+ {
+       if(numElem_ == maxElem_)
+       {
+               grow<T>(arr_,maxElem_+GROW_CONTAINER(),NUM_VEC,LEN_VEC);
+               maxElem_ += GROW_CONTAINER();
+       }
+       for(int i=0;i<NUM_VEC;i++)
+               for(int j=0;j<LEN_VEC;j++)
+                       arr_[numElem_][i][j] = static_cast<T>(0);
+       numElem_++;
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::addUninitialized(int n)
+ {
+     numElem_ += n;
+     if(numElem_ >= maxElem_)
+     {
+         T init_val = static_cast<T>(0);
+         grow(arr_,numElem_+GROW_CONTAINER(),NUM_VEC,LEN_VEC);
+         for(int i = numElem_; i < numElem_+GROW_CONTAINER(); i++)
+             for(int j=0;j<NUM_VEC;j++)
+                 for(int k=0;k<LEN_VEC;k++)
+                       arr_[i][j][k] = init_val;
+         maxElem_ = numElem_ + GROW_CONTAINER();
+     }
+ }
  
-   /* ----------------------------------------------------------------------
-    copy element data
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ delete an element
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::copy(int from,int to)
-   {
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                           arr_[to][i][j] = arr_[from][i][j];
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::del(int n)
+ {
+       
+       numElem_--;
+       if(numElem_ == n) return;
+       for(int i=0;i<NUM_VEC;i++)
+               for(int j=0;j<LEN_VEC;j++)
+                       arr_[n][i][j] = arr_[numElem_][i][j];
+ }
  
-   /* ----------------------------------------------------------------------
-    delete an element
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ copy element data
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::delForward(int n,bool scale,bool translate,bool rotate)
-   {
-           // do only delete property if it is a forward comm property
-           if(!decidePackUnpackOperation(OPERATION_COMM_FORWARD, scale, translate, rotate))
-             return;
- 
-           numElem_--;
-           if(numElem_ == n) return;
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                           arr_[n][i][j] = arr_[numElem_][i][j];
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::copy(int from,int to)
+ {
+       for(int i=0;i<NUM_VEC;i++)
+               for(int j=0;j<LEN_VEC;j++)
+                       arr_[to][i][j] = arr_[from][i][j];
+ }
  
-   /* ----------------------------------------------------------------------
-    clear reverse properties, i.e. reset all of them to 0
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ delete an element
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::clearReverse(bool scale,bool translate,bool rotate)
-   {
-       // do only reset property if it is a reverse comm property
-       if(!decidePackUnpackOperation(OPERATION_COMM_REVERSE, scale, translate, rotate))
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::delForward(int n,bool scale,bool translate,bool rotate)
+ {
+       // do only delete property if it is a forward comm property
+       if(!decidePackUnpackOperation(OPERATION_COMM_FORWARD, scale, translate, rotate))
          return;
  
-       int len = size();
-       for(int i = 0; i < len; i++)
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     arr_[i][j][k] = 0.;
-   }
+       numElem_--;
+       if(numElem_ == n) return;
+       for(int i=0;i<NUM_VEC;i++)
+               for(int j=0;j<LEN_VEC;j++)
+                       arr_[n][i][j] = arr_[numElem_][i][j];
+ }
  
-   /* ----------------------------------------------------------------------
-    delete an element if restart
-   ------------------------------------------------------------------------- */
- 
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::delRestart(int n,bool scale,bool translate,bool rotate)
-   {
-           // do only delete property if it is a restart property
-           if(!decidePackUnpackOperation(OPERATION_RESTART, scale, translate, rotate))
-             return;
- 
-           numElem_--;
-           if(numElem_ == n) return;
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                           arr_[n][i][j] = arr_[numElem_][i][j];
-   }
+ /* ----------------------------------------------------------------------
+ clear reverse properties, i.e. reset all of them to 0
+ ------------------------------------------------------------------------- */
  
-   /* ----------------------------------------------------------------------
-    delete all elements if restart
-   ------------------------------------------------------------------------- */
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::clearReverse(bool scale,bool translate,bool rotate)
+ {
+   // do only reset property if it is a reverse comm property
+   if(!decidePackUnpackOperation(OPERATION_COMM_REVERSE, scale, translate, rotate))
+     return;
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::delRestart(bool scale,bool translate,bool rotate)
-   {
-           // do only delete property if it is a restart property
-           if(!decidePackUnpackOperation(OPERATION_RESTART, scale, translate, rotate))
-             return;
+   int len = size();
+   for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 arr_[i][j][k] = 0.;
+ }
  
-           numElem_ = 0;
-   }
+ /* ----------------------------------------------------------------------
+ delete an element if restart
+ ------------------------------------------------------------------------- */
  
-   /* ----------------------------------------------------------------------
-    get an element
-   ------------------------------------------------------------------------- */
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::delRestart(int n,bool scale,bool translate,bool rotate)
+ {
+       // do only delete property if it is a restart property
+       if(!decidePackUnpackOperation(OPERATION_RESTART, scale, translate, rotate))
+         return;
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::get(int n, T** elem)
-   {
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                           elem[i][j] = arr_[n][i][j];
-   }
+       numElem_--;
+       if(numElem_ == n) return;
+       for(int i=0;i<NUM_VEC;i++)
+               for(int j=0;j<LEN_VEC;j++)
+                       arr_[n][i][j] = arr_[numElem_][i][j];
+ }
  
-   /* ----------------------------------------------------------------------
-    operator()
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ delete all elements if restart
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   T**& GeneralContainer<T,NUM_VEC,LEN_VEC>::operator() (int n)
-   {
-           return arr_[n];
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::delRestart(bool scale,bool translate,bool rotate)
+ {
+       // do only delete property if it is a restart property
+       if(!decidePackUnpackOperation(OPERATION_RESTART, scale, translate, rotate))
+         return;
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   T** const& GeneralContainer<T,NUM_VEC,LEN_VEC>::operator() (int n) const
-   {
-           return arr_[n];
-   }
+       numElem_ = 0;
+ }
  
-   /* ----------------------------------------------------------------------
-    set all data by copy from other container
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ get an element
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   bool GeneralContainer<T,NUM_VEC,LEN_VEC>::setFromContainer(ContainerBase *cont)
-   {
-       GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(cont);
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::get(int n, T** elem)
+ {
+       for(int i=0;i<NUM_VEC;i++)
+               for(int j=0;j<LEN_VEC;j++)
+                       elem[i][j] = arr_[n][i][j];
+ }
  
-       if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
-         return false;
+ /* ----------------------------------------------------------------------
+ operator()
+ ------------------------------------------------------------------------- */
  
-       int len = size();
-       for(int n = 0; n < len; n++)
-           for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                   {
-                           arr_[n][i][j] = gcont->arr_[n][i][j];
-                           
-                   }
- 
-       return true;
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ T**& GeneralContainer<T,NUM_VEC,LEN_VEC>::operator() (int n)
+ {
+     return arr_[n];
+ }
  
-   /* ----------------------------------------------------------------------
-    average from other container
-   ------------------------------------------------------------------------- */
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ T** const& GeneralContainer<T,NUM_VEC,LEN_VEC>::operator() (int n) const
+ {
+     return arr_[n];
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   bool GeneralContainer<T,NUM_VEC,LEN_VEC>::calcAvgFromContainer()
-   {
-       
-       GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(container_statistics_raw_data_);
-       GeneralContainer<T,1,1> *gscale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_data_);
-       GeneralContainer<T,1,1> *gRedScale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_reduced_scale_data_);
+ /* ----------------------------------------------------------------------
+ set all data by copy from other container
+ ------------------------------------------------------------------------- */
  
-       // source has to be defined
-       if (!gcont)
-         return false;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ bool GeneralContainer<T,NUM_VEC,LEN_VEC>::setFromContainer(ContainerBase *cont)
+ {
+     GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(cont);
  
-       // only use if identical dimensions
-       if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
+     if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
          return false;
  
-       const int len = size();
- 
-       if (!gscale || !gRedScale)
-       {
-           for(int n = 0; n < len; n++)
-               for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                      if(averaging_forget_ || (*gcont)(n)[i][j] != 0 )
-                         arr_[n][i][j] = (1.-weighting_factor_)*arr_[n][i][j]+weighting_factor_*(*gcont)(n)[i][j];
-       }
-       else
-       {
-           if(size() != gscale->size() || size() != gRedScale->size())
-             return false;
+     int len = size();
+     for(int n = 0; n < len; n++)
+         for(int i=0;i<NUM_VEC;i++)
+             for(int j=0;j<LEN_VEC;j++)
+             {
+                 arr_[n][i][j] = gcont->arr_[n][i][j];
+                 
+             }
  
-           for(int n = 0; n < len; n++)
-               for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                       arr_[n][i][j] = (1.-weighting_factor_)*(1.-weighting_factor_)*arr_[n][i][j]*(*gRedScale)(n)[1][1]+(*gcont)(n)[i][j]*(*gscale)(n)[1][1];
-       }
-       return true;
-   }
+     return true;
+ }
  
-   /* ----------------------------------------------------------------------
-    mean square from other container
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ average from other container
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   bool GeneralContainer<T,NUM_VEC,LEN_VEC>::calcMeanSquareFromContainer()
-   {
-       
-       GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(container_statistics_raw_data_);
-       GeneralContainer<T,1,1> *gscale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_data_);
-       GeneralContainer<T,1,1> *gRedScale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_reduced_scale_data_);
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ bool GeneralContainer<T,NUM_VEC,LEN_VEC>::calcAvgFromContainer()
+ {
+     
+     GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(container_statistics_raw_data_);
+     GeneralContainer<T,1,1> *gscale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_data_);
+     GeneralContainer<T,1,1> *gscaleAvg = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_average_data_);
  
-       // at least source has to be defined
-       if (!gcont)
+     // source has to be defined
+     if (!gcont)
          return false;
  
-       // only copy if identical
-       if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
+     // only use if identical dimensions
+     if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
          return false;
  
-       const int len = size();
+     const int len = size();
  
-       if (!gscale || !gRedScale)
-       {
-           for(int n = 0; n < len; n++)
-              for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                   {
-                       const T contribution = gcont->arr_[n][i][j];
-                       if(averaging_forget_ || contribution != 0)
-                         arr_[n][i][j] = (1.-weighting_factor_)*arr_[n][i][j]+weighting_factor_*contribution*contribution;
-                   
-                   }
-       }
-       else
-       {
-           if(size() != gscale->size() || size() != gRedScale->size())
-             return false;
- 
-           for(int n = 0; n < len; n++)
-               for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                   {
-                       const T contribution = gcont->arr_[n][i][j];
-                       const T scale = (*gscale)(n)[i][j];
-                       const T redScale = (*gRedScale)(n)[i][j];
-                       arr_[n][i][j] = (1.-weighting_factor_)*(1.-weighting_factor_)*arr_[n][i][j]*redScale+scale*contribution*contribution;
-                   }
-       }
+     T epsilon = std::numeric_limits<T>::epsilon();
  
-       return true;
-   }
+     if (enable_favre_)
+     {
+         for(int n = 0; n < len; n++)
+         {
+             const double scale = (*gscaleAvg)(n)[0][0] < epsilon ? 0.0 : (*gscale)(n)[0][0]/(*gscaleAvg)(n)[0][0];
+             for(int i=0;i<NUM_VEC;i++)
+                 for(int j=0;j<LEN_VEC;j++)
+                 {
+                     const T contribution = gcont->arr_[n][i][j];
+ 
+                     if(MathExtraLiggghts::abs(arr_[n][i][j]) < epsilon)
+                         arr_[n][i][j] = contribution;
+                     else
+                         arr_[n][i][j] = (1.-weighting_factor_*scale)*arr_[n][i][j] +
+                                         weighting_factor_*scale*contribution;
+                 }
+         }
+     }
+     else
+     {
+         for(int n = 0; n < len; n++)
+             for(int i=0;i<NUM_VEC;i++)
+                 for(int j=0;j<LEN_VEC;j++)
+                 {
+                     const T contribution = gcont->arr_[n][i][j];
+ 
+                     if(MathExtraLiggghts::abs(arr_[n][i][j]) < epsilon)
+                         arr_[n][i][j] = contribution;
+                     else
+                         arr_[n][i][j] = (1.-weighting_factor_)*arr_[n][i][j] +
+                                         weighting_factor_*contribution;
+                 }
+     }
+     return true;
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   bool GeneralContainer<T,NUM_VEC,LEN_VEC>::normalizeContainer()
-   {
-       
-       GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(container_statistics_raw_data_);
-       GeneralContainer<T,1,1> *gscale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_data_);
-       GeneralContainer<T,1,1> *gRedScale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_reduced_scale_data_);
+ /* ----------------------------------------------------------------------
+ mean square from other container
+ ------------------------------------------------------------------------- */
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ bool GeneralContainer<T,NUM_VEC,LEN_VEC>::calcMeanSquareFromContainer()
+ {
+     
+     GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(container_statistics_raw_data_);
+     GeneralContainer<T,1,1> *gscale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_data_);
+     GeneralContainer<T,1,1> *gscaleAvg = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_average_data_);
  
-       // at least source has to be defined
-       if (!gcont)
+     // at least source has to be defined
+     if (!gcont)
          return false;
  
-       // only copy if identical
-       if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
+     // only copy if identical
+     if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
          return false;
  
-       const int len = size();
-       if (!gscale || !gRedScale)
-           return true;
-       else
-       {
-           if(size() != gscale->size() || size() != gRedScale->size())
-             return false;
+     const int len = size();
  
-           for(int n = 0; n < len; n++)
-           {
-               if ((*gRedScale)(n)[1][1] < std::numeric_limits<T>::epsilon())
-               {
-                   (*gRedScale)(n)[1][1]  = 0;
-                   for(int i=0;i<NUM_VEC;i++)
-                       for(int j=0;j<LEN_VEC;j++)
-                           arr_[n][i][j] = 0; // assumes weighting factor > 0
-                   continue;
-               }
-               else
-               {
-                   const T redScaleInv = 1./(*gRedScale)(n)[1][1];
-                   for(int i=0;i<NUM_VEC;i++)
-                       for(int j=0;j<LEN_VEC;j++)
-                           arr_[n][i][j] = arr_[n][i][j]*redScaleInv;
-               }
-           }
-       }
+     T epsilon = std::numeric_limits<T>::epsilon();
  
-       return true;
-   }
- 
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   bool GeneralContainer<T,NUM_VEC,LEN_VEC>::calcSumFromContainer()
-   {
-       
-       GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(container_statistics_raw_data_);
-       GeneralContainer<T,1,1> *gscale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_scale_data_);
-       GeneralContainer<T,1,1> *gRedScale = dynamic_cast<GeneralContainer<T,1,1>* >(container_statistics_reduced_scale_data_);
+     if (enable_favre_)
+     {
+         for(int n = 0; n < len; n++)
+         {
+             const double scale = (*gscaleAvg)(n)[0][0] < epsilon ? 0.0 : (*gscale)(n)[0][0]/(*gscaleAvg)(n)[0][0];
+             for(int i=0;i<NUM_VEC;i++)
+                 for(int j=0;j<LEN_VEC;j++)
+                 {
+                     const T contribution = gcont->arr_[n][i][j];
+ 
+                     if(MathExtraLiggghts::abs(arr_[n][i][j]) < epsilon)
+                         arr_[n][i][j] = contribution*contribution;
+                     else
+                         arr_[n][i][j] = (1.-weighting_factor_*scale)*arr_[n][i][j] +
+                                         weighting_factor_*scale*contribution*contribution;
+                 }
+                 
+         }
+     }
+     else
+     {
+         for(int n = 0; n < len; n++)
+             for(int i=0;i<NUM_VEC;i++)
+                 for(int j=0;j<LEN_VEC;j++)
+                 {
+                     const T contribution = gcont->arr_[n][i][j];
+ 
+                     if(MathExtraLiggghts::abs(arr_[n][i][j]) < epsilon)
+                         arr_[n][i][j] = contribution*contribution;
+                     else
+                         arr_[n][i][j] = (1.-weighting_factor_)*arr_[n][i][j] +
+                                         weighting_factor_*contribution*contribution;
+                 }
+                 
+     }
+ 
+     return true;
+ }
+ 
+ // This is the averaging for the scaling arrays
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ bool GeneralContainer<T,NUM_VEC,LEN_VEC>::calcSumFromContainer()
+ {
+     
+     GeneralContainer<T,NUM_VEC,LEN_VEC> *gcont = static_cast<GeneralContainer<T,NUM_VEC,LEN_VEC>* >(container_statistics_raw_data_);
  
-       // at least source has to be defined
-       if (!gcont)
+     // at least source has to be defined
+     if (!gcont)
          return false;
  
-       // only copy if identical
-       if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
+     // only copy if identical
+     if(size() != gcont->size() || nVec() != gcont->nVec() || lenVec() != gcont->lenVec())
          return false;
  
-       const int len = size();
-       if (!gscale || !gRedScale)
-       {
-           for(int n = 0; n < len; n++)
-               for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                   {
-                       arr_[n][i][j] = (1.-weighting_factor_)*arr_[n][i][j]+(*gcont)(n)[i][j];
-                       
-                       if (arr_[n][i][j] < std::numeric_limits<T>::epsilon())
-                           arr_[n][i][j] = 0;
-                   }
-       }
-       else
-       {
-           if(size() != gscale->size() || size() != gRedScale->size())
-             return false;
- 
-           for(int n = 0; n < len; n++)
-               for(int i=0;i<NUM_VEC;i++)
-                   for(int j=0;j<LEN_VEC;j++)
-                   {
-                       arr_[n][i][j] = (1.-weighting_factor_)*(1.-weighting_factor_)*arr_[n][i][j]*(*gRedScale)(n)[1][1]+(*gcont)(n)[i][j]*(*gscale)(n)[1][1];
-                       
-                       if (arr_[n][i][j] < std::numeric_limits<T>::epsilon())
-                           arr_[n][i][j] = 0;
-                   }
-               }
- 
-       return true;
-   }
+     const int len = size();
+     for(int n = 0; n < len; n++)
+         for(int i=0;i<NUM_VEC;i++)
+             for(int j=0;j<LEN_VEC;j++)
+             {
+                 arr_[n][i][j] = (1.-weighting_factor_)*arr_[n][i][j] +
+                                 weighting_factor_*(*gcont)(n)[i][j];
+                 
+                 if (arr_[n][i][j] < std::numeric_limits<T>::epsilon())
+                     arr_[n][i][j] = 0;
+             }
  
-   /* ---------------------------------------------------------------------- */
+     return true;
+ }
+ 
+ /* ---------------------------------------------------------------------- */
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::setToDefault(int n)
+ {
+ 
+     for(int i = 0; i < NUM_VEC; i++)
+         for(int j = 0; j < LEN_VEC; j++)
+             arr_[n][i][j] = defaultValue_;
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::set(int n, T** elem)
+ {
+     for(int i = 0; i < NUM_VEC; i++)
+         for(int j = 0; j < LEN_VEC; j++)
+             arr_[n][i][j] = elem[i][j];
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::set(int n, int m, T* elem)
+ {
+     for(int j = 0; j < LEN_VEC; j++)
+         arr_[n][m][j] = elem[j];
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::setAll(T def)
+ {
+     int len = size();
+     for(int n = 0; n < len; n++)
+         for(int i = 0; i < NUM_VEC; i++)
+             for(int j = 0; j < LEN_VEC; j++)
+                 arr_[n][i][j] = def;
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::setAll(int to,T def)
+ {
+     int len = MathExtraLiggghts::min(to,size());
+     for(int n = 0; n < len; n++)
+         for(int i = 0; i < NUM_VEC; i++)
+             for(int j = 0; j < LEN_VEC; j++)
+                 arr_[n][i][j] = def;
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ T*** GeneralContainer<T,NUM_VEC,LEN_VEC>::begin()
+ {
+     return arr_;
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void* GeneralContainer<T,NUM_VEC,LEN_VEC>::begin_slow_dirty()
+ {
+     return (void*) arr_;
+ }
+ 
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::getElemSize()
+ {
+       return NUM_VEC*LEN_VEC*sizeof(T);
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::setToDefault(int n)
-   {
-     
-           for(int i = 0; i < NUM_VEC; i++)
-                           for(int j = 0; j < LEN_VEC; j++)
-                                   arr_[n][i][j] = defaultValue_;
-   }
+ /* ----------------------------------------------------------------------
+ min,max
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::set(int n, T** elem)
-   {
-           for(int i = 0; i < NUM_VEC; i++)
-                           for(int j = 0; j < LEN_VEC; j++)
-                                   arr_[n][i][j] = elem[i][j];
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ T GeneralContainer<T,NUM_VEC,LEN_VEC>::max_scalar()
+ {
+   T max = arr_[0][0][0];
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::set(int n, int m, T* elem)
-   {
-       for(int j = 0; j < LEN_VEC; j++)
-           arr_[n][m][j] = elem[j];
-   }
+   int len = size();
+   for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 if(arr_[i][j][k] > max)
+                     max = arr_[i][j][k];
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::setAll(T def)
-   {
-       int len = size();
-       for(int n = 0; n < len; n++)
-           for(int i = 0; i < NUM_VEC; i++)
-                           for(int j = 0; j < LEN_VEC; j++)
-                                   arr_[n][i][j] = def;
-   }
+   return max;
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::setAll(int to,T def)
-   {
-       int len = MathExtraLiggghts::min(to,size());
-       for(int n = 0; n < len; n++)
-           for(int i = 0; i < NUM_VEC; i++)
-                           for(int j = 0; j < LEN_VEC; j++)
-                                   arr_[n][i][j] = def;
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ T GeneralContainer<T,NUM_VEC,LEN_VEC>::min_scalar()
+ {
+   T min = arr_[0][0][0];
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   T*** GeneralContainer<T,NUM_VEC,LEN_VEC>::begin()
-   {
-           return arr_;
-   }
+   int len = size();
+   for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 if(arr_[i][j][k] < min)
+                     min = arr_[i][j][k];
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void* GeneralContainer<T,NUM_VEC,LEN_VEC>::begin_slow_dirty()
-   {
-           return (void*) arr_;
-   }
+   return min;
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::getElemSize()
-   {
-           return NUM_VEC*LEN_VEC*sizeof(T);
-   }
+ /* ----------------------------------------------------------------------
+ translate, rotate, scale
+ ------------------------------------------------------------------------- */
  
-   /* ----------------------------------------------------------------------
-    min,max
-   ------------------------------------------------------------------------- */
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::scale(double factor)
+ {
+   if(isScaleInvariant()) return;
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   T GeneralContainer<T,NUM_VEC,LEN_VEC>::max_scalar()
-   {
-       T max = arr_[0][0][0];
+   double factorApplied = 1.;
+   for(int i = 0; i < scalePower_; i++)
+     factorApplied *= factor;
  
-       int len = size();
-       for(int i = 0; i < len; i++)
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     if(arr_[i][j][k] > max)
-                         max = arr_[i][j][k];
+   int len = size();
+   for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC;j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 arr_[i][j][k] *= factorApplied;
+ }
  
-       return max;
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::move(const double * const delta)
+ {
+   if(isTranslationInvariant()) return;
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   T GeneralContainer<T,NUM_VEC,LEN_VEC>::min_scalar()
-   {
-       T min = arr_[0][0][0];
+   int len = size();
  
-       int len = size();
-       for(int i = 0; i < len; i++)
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     if(arr_[i][j][k] < min)
-                         min = arr_[i][j][k];
+   for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 arr_[i][j][k] += delta[k];
+ }
  
-       return min;
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::moveElement(const int i, const double * const delta)
+ {
+   if(isTranslationInvariant()) return;
  
-   /* ----------------------------------------------------------------------
-    translate, rotate, scale
-   ------------------------------------------------------------------------- */
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 arr_[i][j][k] += delta[k];
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::scale(double factor)
-   {
-       if(isScaleInvariant()) return;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ void GeneralContainer<T,NUM_VEC,LEN_VEC>::rotate(const double * const dQ)
+ {
+   if(isRotationInvariant()) return;
  
-       double factorApplied = 1.;
-       for(int i = 0; i < scalePower_; i++)
-         factorApplied *= factor;
+   // ATTENTION: only correct for 3D vectors
+   int len = size();
+   for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC; j++)
+           MathExtraLiggghts::vec_quat_rotate(arr_[i][j],dQ);
+ }
  
-       int len = size();
-       for(int i = 0; i < len; i++)
-             for(int j = 0; j < NUM_VEC;j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     arr_[i][j][k] *= factorApplied;
-   }
+ /* ----------------------------------------------------------------------
+ buffer size for all elements, push / pop for all elements
+ used for global properties
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::move(double *delta)
-   {
-       if(isTranslationInvariant()) return;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::bufSize(int operation,bool scale,bool translate,bool rotate) const
+ {
+   if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-       int len = size();
+   if(!this->decideCommOperation(operation))
+         return 0;
  
-       for(int i = 0; i < len; i++)
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     arr_[i][j][k] += delta[k];
-   }
+   return (1 + size()*NUM_VEC*LEN_VEC);
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::moveElement(int i,double *delta)
-   {
-       if(isTranslationInvariant()) return;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushToBuffer(double *buf,int operation,bool scale,bool translate, bool rotate)
+ {
+       //TODO throw error if sizeof(T) > sizeof(double)
  
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     arr_[i][j][k] += delta[k];
-   }
+       int m = 0;
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   void GeneralContainer<T,NUM_VEC,LEN_VEC>::rotate(double *dQ)
-   {
-       if(isRotationInvariant()) return;
+       if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-       // ATTENTION: only correct for 3D vectors
        int len = size();
-       for(int i = 0; i < len; i++)
-             for(int j = 0; j < NUM_VEC; j++)
-               MathExtraLiggghts::vec_quat_rotate(arr_[i][j],dQ);
-   }
  
-   /* ----------------------------------------------------------------------
-    buffer size for all elements, push / pop for all elements
-    used for global properties
-   ------------------------------------------------------------------------- */
+       buf[m++] = static_cast<double>(len);
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::bufSize(int operation,bool scale,bool translate,bool rotate) const
-   {
-       if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
- 
-       if(!this->decideCommOperation(operation))
-             return 0;
- 
-       return (1 + size()*NUM_VEC*LEN_VEC);
-   }
+       for(int i = 0; i < len; i++)
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 buf[m++] = static_cast<double>(arr_[i][j][k]);
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushToBuffer(double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-           //TODO throw error if sizeof(T) > sizeof(double)
+       return (1 + len*NUM_VEC*LEN_VEC);
+ }
  
-           int m = 0;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::popFromBuffer(double *buf,int operation,bool scale,bool translate, bool rotate)
+ {
+       int nNew, m = 0;
  
-           if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+       if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-           int len = size();
+       if(decideCreateNewElements(operation))
+       {
+           T** tmp;
+           create<T>(tmp,NUM_VEC,LEN_VEC);
  
-           buf[m++] = static_cast<double>(len);
+           nNew = static_cast<int>(buf[m++]);
  
-           for(int i = 0; i < len; i++)
+           for(int i = 0; i < nNew; i++)
+           {
              for(int j = 0; j < NUM_VEC; j++)
                  for(int k = 0; k < LEN_VEC; k++)
-                     buf[m++] = static_cast<double>(arr_[i][j][k]);
- 
-           return (1 + len*NUM_VEC*LEN_VEC);
-   }
+                     tmp[j][k] = static_cast<T>(buf[m++]);
+             add(tmp);
+           }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::popFromBuffer(double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-           int nNew, m = 0;
+           destroy<T>(tmp);
  
-           if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+           return (1 + nNew*NUM_VEC*LEN_VEC);
+       }
+       else return 0;
+ }
  
-           if(decideCreateNewElements(operation))
-           {
-               T** tmp;
-               create<T>(tmp,NUM_VEC,LEN_VEC);
+ /* ----------------------------------------------------------------------
+ buffer size for a list of elements, push / pop a list of elements
+ used for borders, fw and rev comm for element properties
+ ------------------------------------------------------------------------- */
  
-               nNew = static_cast<int>(buf[m++]);
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::elemListBufSize(int n,int operation,bool scale,bool translate,bool rotate)
+ {
+   if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-               for(int i = 0; i < nNew; i++)
-               {
-                 for(int j = 0; j < NUM_VEC; j++)
-                     for(int k = 0; k < LEN_VEC; k++)
-                         tmp[j][k] = static_cast<T>(buf[m++]);
-                 add(tmp);
-               }
+   if(!this->decideCommOperation(operation))
+         return 0;
  
-               destroy<T>(tmp);
+   return (n*NUM_VEC*LEN_VEC);
+ }
  
-               return (1 + nNew*NUM_VEC*LEN_VEC);
-           }
-           else return 0;
-   }
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushElemListToBuffer(int n, int *list, int *wraplist, double *buf,int operation, double *dlo, double *dhi, bool scale,bool translate, bool rotate)
+ {
+     int i,m = 0;
  
-   /* ----------------------------------------------------------------------
-    buffer size for a list of elements, push / pop a list of elements
-    used for borders, fw and rev comm for element properties
-   ------------------------------------------------------------------------- */
+     if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::elemListBufSize(int n,int operation,bool scale,bool translate,bool rotate)
-   {
-       if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+     if(!this->decideCommOperation(operation))
+         return 0;
  
-       if(!this->decideCommOperation(operation))
-             return 0;
+     for(int ii = 0; ii < n; ii++)
+     {
+         i = list[ii];
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+             {
+                 buf[m] = static_cast<double>(arr_[i][j][k]);
+                 if (wrapPeriodic())
+                 {
+                     const int wrap = wraplist[ii];
+                     if (wrap != IS_GHOST)
+                     {
+                         if      ((k == 0 && wrap == IS_GHOST_WRAP_DIM_0_NEG) ||
+                                  (k == 1 && wrap == IS_GHOST_WRAP_DIM_1_NEG) ||
+                                  (k == 2 && wrap == IS_GHOST_WRAP_DIM_2_NEG)   )
+                             buf[m] -= dhi[k] - dlo[k];
+                         else if ((k == 0 && wrap == IS_GHOST_WRAP_DIM_0_POS) ||
+                                  (k == 1 && wrap == IS_GHOST_WRAP_DIM_1_POS) ||
+                                  (k == 2 && wrap == IS_GHOST_WRAP_DIM_2_POS)   )
+                             buf[m] += dhi[k] - dlo[k];
+                     }
+                 }
+                 m++;
+             }
+     }
  
-       return (n*NUM_VEC*LEN_VEC);
-   }
+     return (n*NUM_VEC*LEN_VEC);
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushElemListToBuffer(int n, int *list,double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-         int i,m = 0;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::popElemListFromBuffer(int first, int n, double *buf,int operation,bool scale,bool translate, bool rotate)
+ {
+     int m = 0;
  
-         if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+     if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-         if(!this->decideCommOperation(operation))
-             return 0;
+     bool pullBuf = decideCommOperation(operation);
  
-         for(int ii = 0; ii < n; ii++)
-         {
-             i = list[ii];
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     buf[m++] = static_cast<double>(arr_[i][j][k]);
-         }
- 
-         return (n*NUM_VEC*LEN_VEC);
-   }
+     bool createElem = decideCreateNewElements(operation);
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::popElemListFromBuffer(int first, int n, double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-         int m = 0;
+     T** tmp;
+     create<T>(tmp,NUM_VEC,LEN_VEC);
  
-         if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+     for(int i = first; i < first+n; i++)
+     {
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 (createElem ? tmp[j][k] : arr_[i][j][k]) = (pullBuf ? static_cast<T>(buf[m++]) : static_cast<T>(0));
  
-         bool pullBuf = decideCommOperation(operation);
+         if(createElem) add(tmp);
+     }
  
-         bool createElem = decideCreateNewElements(operation);
+     destroy<T>(tmp);
  
-         T** tmp;
-         create<T>(tmp,NUM_VEC,LEN_VEC);
+     return m;
+ }
  
-         for(int i = first; i < first+n; i++)
-         {
-             for(int j = 0; j < NUM_VEC; j++)
-                 for(int k = 0; k < LEN_VEC; k++)
-                     (createElem ? tmp[j][k] : arr_[i][j][k]) = (pullBuf ? static_cast<T>(buf[m++]) : static_cast<T>(0));
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushElemListToBufferReverse(int first, int n, double *buf,int operation,bool scale,bool translate, bool rotate)
+ {
+     int m = 0;
  
-             if(createElem) add(tmp);
-         }
+     if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-         destroy<T>(tmp);
+     for(int i = first; i < first+n; i++)
+     {
+         for(int j = 0; j < NUM_VEC; j++)
+             for(int k = 0; k < LEN_VEC; k++)
+                 buf[m++] = static_cast<double>(arr_[i][j][k]);
+     }
  
-         return m;
-   }
+     return (n*NUM_VEC*LEN_VEC);
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushElemListToBufferReverse(int first, int n, double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-         int m = 0;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::popElemListFromBufferReverse(int n, int *list,double *buf,int operation,bool scale,bool translate, bool rotate)
+ {
+     int i,m = 0;
  
-         if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+     if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-         for(int i = first; i < first+n; i++)
+     if(COMM_TYPE_REVERSE == this->communicationType())
+     {
+         
+         for(int ii = 0; ii < n; ii++)
          {
+             i = list[ii];
              for(int j = 0; j < NUM_VEC; j++)
                  for(int k = 0; k < LEN_VEC; k++)
-                     buf[m++] = static_cast<double>(arr_[i][j][k]);
-         }
- 
-         return (n*NUM_VEC*LEN_VEC);
-   }
- 
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::popElemListFromBufferReverse(int n, int *list,double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-         int i,m = 0;
- 
-         if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
- 
-         if(COMM_TYPE_REVERSE == this->communicationType())
-         {
-             
-             for(int ii = 0; ii < n; ii++)
-             {
-                 i = list[ii];
-                 for(int j = 0; j < NUM_VEC; j++)
-                     for(int k = 0; k < LEN_VEC; k++)
-                         arr_[i][j][k] += static_cast<T>(buf[m++]);
-             }
+                     arr_[i][j][k] += static_cast<T>(buf[m++]);
          }
-         else if(sizeof(int) == sizeof(T) && COMM_TYPE_REVERSE_BITFIELD == this->communicationType())
+     }
+     else if(sizeof(int) == sizeof(T) && COMM_TYPE_REVERSE_BITFIELD == this->communicationType())
+     {
+         
+         for(int ii = 0; ii < n; ii++)
          {
-             
-             for(int ii = 0; ii < n; ii++)
-             {
-                 i = list[ii];
-                 for(int j = 0; j < NUM_VEC; j++)
-                     for(int k = 0; k < LEN_VEC; k++)
-                         arr_[i][j][k] = (T) (static_cast<int>(arr_[i][j][k]) | static_cast<int>(buf[m++]));
-             }
+             i = list[ii];
+             for(int j = 0; j < NUM_VEC; j++)
+                 for(int k = 0; k < LEN_VEC; k++)
+                     arr_[i][j][k] = (T) (static_cast<int>(arr_[i][j][k]) | static_cast<int>(buf[m++]));
          }
+     }
  
-         return (n*NUM_VEC*LEN_VEC);
-   }
+     return (n*NUM_VEC*LEN_VEC);
+ }
  
-   /* ----------------------------------------------------------------------
-    buffer size for a single element, push / pop a single element
-    used for exchange of single elements
-   ------------------------------------------------------------------------- */
+ /* ----------------------------------------------------------------------
+ buffer size for a single element, push / pop a single element
+ used for exchange of single elements
+ ------------------------------------------------------------------------- */
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::elemBufSize(int operation,bool scale,bool translate,bool rotate)
-   {
-       
-       if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::elemBufSize(int operation,bool scale,bool translate,bool rotate)
+ {
+   
+   if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-       if(!this->decideCommOperation(operation))
-             return 0;
-       
-       return (NUM_VEC*LEN_VEC);
-   }
+   if(!this->decideCommOperation(operation))
+         return 0;
+   
+   return (NUM_VEC*LEN_VEC);
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushElemToBuffer(int i, double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-         int m = 0;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::pushElemToBuffer(int i, double *buf,int operation,bool scale,bool translate, bool rotate)
+ {
+     int m = 0;
  
-         if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+     if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-         if(!this->decideCommOperation(operation))
-             return 0;
+     if(!this->decideCommOperation(operation))
+         return 0;
  
-         for(int j = 0; j < NUM_VEC; j++)
-             for(int k = 0; k < LEN_VEC; k++)
-                 buf[m++] = static_cast<double>(arr_[i][j][k]);
+     for(int j = 0; j < NUM_VEC; j++)
+         for(int k = 0; k < LEN_VEC; k++)
+             buf[m++] = static_cast<double>(arr_[i][j][k]);
  
-         return m;
-   }
+     return m;
+ }
  
-   template<typename T, int NUM_VEC, int LEN_VEC>
-   int GeneralContainer<T,NUM_VEC,LEN_VEC>::popElemFromBuffer(double *buf,int operation,bool scale,bool translate, bool rotate)
-   {
-         int m = 0;
+ template<typename T, int NUM_VEC, int LEN_VEC>
+ int GeneralContainer<T,NUM_VEC,LEN_VEC>::popElemFromBuffer(double *buf,int operation,bool scale,bool translate, bool rotate)
+ {
+     int m = 0;
  
-         if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
-             return 0;
+     if(!this->decidePackUnpackOperation(operation,scale,translate,rotate))
+         return 0;
  
-         bool pullBuf = decideCommOperation(operation);
+     bool pullBuf = decideCommOperation(operation);
  
-         T** tmp;
-         create<T>(tmp,NUM_VEC,LEN_VEC);
+     T** tmp;
+     create<T>(tmp,NUM_VEC,LEN_VEC);
  
-         for(int j = 0; j < NUM_VEC; j++)
-             for(int k = 0; k < LEN_VEC; k++)
-                 tmp[j][k] = pullBuf ? static_cast<T>(buf[m++]) : static_cast<T>(0);
+     for(int j = 0; j < NUM_VEC; j++)
+         for(int k = 0; k < LEN_VEC; k++)
+             tmp[j][k] = pullBuf ? static_cast<T>(buf[m++]) : static_cast<T>(0);
  
-         add(tmp);
-         destroy<T>(tmp);
+     add(tmp);
+     destroy<T>(tmp);
  
-         return m;
-   }
+     return m;
+ }
  
  #endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/liggghts.git



More information about the debian-science-commits mailing list