[asl] 56/177: Improving ParametersManager interface

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Thu Aug 27 09:22:40 UTC 2015


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

ghisvail-guest pushed a commit to branch master
in repository asl.

commit 6bf5dd5c797a39b90284b3a53e7fb7dfa802196b
Author: Avtech Scientific <AvtechScientific at users.noreply.github.com>
Date:   Mon Jun 29 14:58:25 2015 +0300

    Improving ParametersManager interface
---
 examples/elastic/acousticWaves.cc             |  31 ++---
 examples/elastic/cubeGravity.cc               |  26 ++--
 examples/elastic/cubeIncompressibleGravity.cc |  25 ++--
 examples/elastic/cubePoroelasticGravity.cc    |  27 ++--
 examples/elastic/poroelastic.cc               |  33 +++--
 examples/flow/compressor.cc                   |  26 ++--
 examples/flow/flow.cc                         |  36 +++---
 examples/flow/flow2.cc                        |  36 +++---
 examples/flow/flow3.cc                        |  37 +++---
 examples/flow/flowKDPGrowth.cc                |  33 +++--
 examples/flow/flowRotatingCylinders.cc        |  34 +++--
 examples/flow/locomotive_in_tunnel.cc         |  20 +--
 examples/flow/locomotive_laminar.cc           |   5 +-
 examples/flow/multicomponent_flow.cc          |  15 +--
 examples/flow/multiphase_flow.cc              |  48 +++----
 examples/flow/pitot_tube_ice.cc               |  33 +++--
 examples/heatTransfer/surfaceFlux.cc          |  35 +++--
 examples/input_data/brain.vti                 | Bin 0 -> 33442 bytes
 examples/jumpingObjects/jumpingBox.cc         |  19 ++-
 examples/levelSet/levelSetBasic.cc            |  21 ++-
 examples/levelSet/levelSetFacetedGrowth.cc    |  19 +--
 examples/levelSet/levelSetNormalGrowth.cc     |  25 ++--
 examples/massTransferSM/testSMDiff.cc         |  26 ++--
 examples/massTransferSM/testSMDiff3C.cc       |   4 +-
 examples/massTransferSM/testSMPhi.cc          |  26 ++--
 examples/massTransferSM/testSMPhiBV.cc        |  30 ++---
 src/utilities/aslParametersManager.cxx        | 176 +++++++++++++-------------
 src/utilities/aslParametersManager.h          |  54 ++++----
 28 files changed, 423 insertions(+), 477 deletions(-)

diff --git a/examples/elastic/acousticWaves.cc b/examples/elastic/acousticWaves.cc
index c7b79ac..cedb4a1 100644
--- a/examples/elastic/acousticWaves.cc
+++ b/examples/elastic/acousticWaves.cc
@@ -25,8 +25,6 @@
 	\example acousticWaves.cc
  */
 
-#include <math/aslVectors.h>
-#include <data/aslBlocks.h>
 #include <aslDataInc.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
@@ -36,9 +34,7 @@
 #include <utilities/aslTimer.h>
 #include <utilities/aslParametersManager.h>
 #include <math/aslTemplates.h>
-//#include <acl/aclMath/aclVectorOfElements.h>
 #include <aslGeomInc.h>
-//#include "acl/aclUtilities.h"
 
 
 typedef float FlT;
@@ -51,7 +47,6 @@ class Parameters
 
   public:
 		asl::ApplicationParametersManager appParamsManager;
-		string folder;
 
 		asl::Block::DV size;
 
@@ -81,20 +76,20 @@ class Parameters
 
 
 Parameters::Parameters():
-	appParamsManager("acousticWaves", "0.1", "acousticWaves.ini"),
+	appParamsManager("acousticWaves", "0.1"),
 	size(3),
 	dx(1e-3,"dx", "dx"),
 	bulkModulus(160e9,"bulk_modulus", "bulk modulus"),
 	shearModulus(79e9,"shear_modulus", "shear modulus"),
 	rho(7800,"rho", "density"),
-	tubeL(.2,"tube_length", "pipe length, m"),
-	tubeDEx(0.021, "tube_diameter_external", "external pipe diameter, m"),
-//	tubeDIn(0.0157,"tube_diameter_internal", "internal pipe diameter, m"),
-	tubeDIn(0.0107,"tube_diameter_internal", "internal pipe diameter, m"),
-	hole1Pos(0.1,"hole_1_position", "position of first hole, m"),
-	hole2Pos(0.15,"hole_2_position", "position of second hole, m"),
-	hole1D(15e-3,"hole_1_diameter", "diameter of first hole, m"),
-	hole2D(15e-3,"hole_2_diameter", "diameter of second hole, m"),
+	tubeL(.2,"tube_length", "pipe length" "m"),
+	tubeDEx(0.021, "tube_diameter_external", "external pipe diameter" "m"),
+//	tubeDIn(0.0157,"tube_diameter_internal", "internal pipe diameter" "m"),
+	tubeDIn(0.0107,"tube_diameter_internal", "internal pipe diameter" "m"),
+	hole1Pos(0.1,"hole_1_position", "position of first hole" "m"),
+	hole2Pos(0.15,"hole_2_position", "position of second hole" "m"),
+	hole1D(15e-3,"hole_1_diameter", "diameter of first hole" "m"),
+	hole2D(15e-3,"hole_2_diameter", "diameter of second hole" "m"),
 	tSimulation(8e-5, "simulation_time", "simulation time"),
 	tOutput(1e-6, "output_interval", "output interval")
 {
@@ -104,7 +99,6 @@ Parameters::Parameters():
 void Parameters::load(int argc, char * argv[])
 {
 	appParamsManager.load(argc, argv);
-	folder = appParamsManager.getFolderWithSlash();
 
 	init();
 }
@@ -122,6 +116,7 @@ void Parameters::updateNumValues()
 	                     tubeDEx.v() / dx.v() + 1);
 }
 
+
 void Parameters::init()
 {
 //	if (tubeD.v() < pumpD.v())
@@ -167,7 +162,7 @@ int main(int argc, char* argv[])
 	Parameters params;
 	params.load(argc, argv);
 		
-	std::cout<<"acoustic waves: Data initialization..."<<flush;
+	std::cout << "Acoustic waves: Data initialization..."<<flush;
 
 	asl::Block block(params.size, params.dx.v());
 	auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
@@ -177,14 +172,14 @@ int main(int argc, char* argv[])
 	asl::initData(mapMem, generatePipe(block, params));
 
 	
-	asl::WriterVTKXML writer(params.folder + "acousticWaves");
+	asl::WriterVTKXML writer(params.appParamsManager.getDir() + "acousticWaves");
 	writer.addScalars("map", *mapMem);
 	writer.addVector("displacement", *displacement);
 	writer.write();
 
 	std::cout << "Finished" << endl;
 	
-	std::cout << "cubeGravity: Numerics initialization..."<<flush;
+	std::cout << "cubeGravity: Numerics initialization..." << flush;
 
 	auto elasticity(generateFDElasticityRelax(displacement,
 	                                          params.bulkMNum.v(),
diff --git a/examples/elastic/cubeGravity.cc b/examples/elastic/cubeGravity.cc
index 9d8b0ff..24c6c88 100644
--- a/examples/elastic/cubeGravity.cc
+++ b/examples/elastic/cubeGravity.cc
@@ -25,9 +25,7 @@
 	\example cubeGravity.cc
  */
 
-#include <math/aslVectors.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslFDElasticity.h>
@@ -37,7 +35,7 @@
 #include <math/aslTemplates.h>
 #include <acl/aclMath/aclVectorOfElements.h>
 #include <aslGeomInc.h>
-#include "acl/aclUtilities.h"
+#include <acl/aclUtilities.h>
 
 
 typedef float FlT;
@@ -47,7 +45,7 @@ typedef asl::UValue<FlT> Param;
 
 int main(int argc, char* argv[])
 {
-	asl::ApplicationParametersManager appParamsManager("cubeGravity", "1.0", "cubeGravity.ini");
+	asl::ApplicationParametersManager appParamsManager("cubeGravity", "1.0");
 	asl::Parameter<asl::AVec<int> > size("size", "size 3D");
 	asl::Parameter<cl_float> dx("dx", "dx");
 	asl::Parameter<cl_float> dt("dt", "dt");
@@ -66,7 +64,7 @@ int main(int argc, char* argv[])
 
 	asl::AVec<FlT> gNum(g.v()/dx.v());
 		
-	std::cout<<"cubeGravity: Data initialization..."<<flush;
+	std::cout << "CubeGravity: Data initialization..." << flush;
 
 	asl::Block block(size.v(), dx.v());
 	auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
@@ -78,14 +76,14 @@ int main(int argc, char* argv[])
 	initData(mapX->getEContainer(), map->getEContainer());
 
 	
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "cubeGravity");
+	asl::WriterVTKXML writer(appParamsManager.getDir() + "cubeGravity");
 	writer.addScalars("map", *mapX);
 	writer.addVector("displacement", *displacement);
 	writer.write();
 
 	std::cout << "Finished" << endl;
 	
-	std::cout << "cubeGravity: Numerics initialization..."<<flush;
+	std::cout << "cubeGravity: Numerics initialization..." << flush;
 
 	asl::SPFDElasticity2 elasticity(new asl::FDElasticity2(displacement,
 	                                                       acl::generateVEConstant(bulkModulusNum.v()),
@@ -104,7 +102,7 @@ int main(int argc, char* argv[])
 	
 
 	std::cout << "Finished" << endl;
-	std::cout << "Computing..."<<endl;
+	std::cout << "Computing..." << endl;
 	asl::Timer timer;
 
 	bcFreeSurface->execute();
@@ -117,19 +115,19 @@ int main(int argc, char* argv[])
 		elasticity->execute();
 		bcFreeSurface->execute();
 		bcRigidWall->execute();
-		if(!(i % tout.v()))
+		if (!(i % tout.v()))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime()	 <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
 	std::cout << "Output...";
 	std::cout << "Finished" << endl;	
diff --git a/examples/elastic/cubeIncompressibleGravity.cc b/examples/elastic/cubeIncompressibleGravity.cc
index cd1dc93..d8e2d12 100644
--- a/examples/elastic/cubeIncompressibleGravity.cc
+++ b/examples/elastic/cubeIncompressibleGravity.cc
@@ -25,9 +25,7 @@
 	\example cubeGravity.cc
  */
 
-#include <math/aslVectors.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslFDElasticity.h>
@@ -37,7 +35,7 @@
 #include <math/aslTemplates.h>
 #include <acl/aclMath/aclVectorOfElements.h>
 #include <aslGeomInc.h>
-#include "acl/aclUtilities.h"
+#include <acl/aclUtilities.h>
 
 
 typedef float FlT;
@@ -48,8 +46,7 @@ typedef asl::UValue<FlT> Param;
 int main(int argc, char* argv[])
 {
 	asl::ApplicationParametersManager appParamsManager("cubeIncompressibleGravity",
-	                                                   "1.0",
-	                                                   "cubeIncompressibleGravity.ini");
+	                                                   "1.0");
 	asl::Parameter<asl::AVec<int> > size("size", "size 3D");
 	asl::Parameter<cl_float> dx("dx", "dx");
 	asl::Parameter<cl_float> dt("dt", "dt");
@@ -68,7 +65,7 @@ int main(int argc, char* argv[])
 
 	asl::AVec<FlT> gNum(g.v()/dx.v()*dt.v());
 		
-	std::cout<<"cubeGravity: Data initialization..."<<flush;
+	std::cout << "Data initialization..." << flush;
 
 	asl::Block block(size.v(), dx.v());
 	auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
@@ -83,7 +80,7 @@ int main(int argc, char* argv[])
 
 	std::cout << "Finished" << endl;
 	
-	std::cout << "cubeIncompressibleGravity: Numerics initialization..."<<flush;
+	std::cout << "Numerics initialization..." << flush;
 
 	auto elasticity(generateFDElasticityStatic(displacement,
 	                                           bulkModulusNum.v(),
@@ -98,13 +95,13 @@ int main(int argc, char* argv[])
 	bc.push_back(asl::generateBCRigidWall(elasticity, {asl::X0}));
 	asl::initAll(bc);
 
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "cubeIncompressibleGravity");
+	asl::WriterVTKXML writer(appParamsManager.getDir() + "cubeIncompressibleGravity");
 	writer.addScalars("map", *mapX);
 	writer.addVector("displacement", *displacement);
 	writer.addScalars("pressure", *elasticity->getPressureData());
 	
 	std::cout << "Finished" << endl;
-	std::cout << "Computing..."<<endl;
+	std::cout << "Computing..." << endl;
 	asl::Timer timer, timerBulk, timerBC;
 
 	executeAll(bc);
@@ -123,17 +120,17 @@ int main(int argc, char* argv[])
 		timerBC.stop();		
 		if(!(i % tout.v()))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime()	 <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 	cout << "timeBulk=" << timerBulk.getTime() << 
 		    "; timeBC=" << timerBC.getTime()  << endl;
 
diff --git a/examples/elastic/cubePoroelasticGravity.cc b/examples/elastic/cubePoroelasticGravity.cc
index 786bba4..f1b9b5b 100644
--- a/examples/elastic/cubePoroelasticGravity.cc
+++ b/examples/elastic/cubePoroelasticGravity.cc
@@ -25,9 +25,7 @@
 	\example cubePoroelasticGravity.cc
  */
 
-#include <math/aslVectors.h>
 #include <aslDataInc.h>
-#include <aslGenerators.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslFDPoroElasticity.h>
@@ -38,7 +36,7 @@
 #include <math/aslTemplates.h>
 #include <acl/aclMath/aclVectorOfElements.h>
 #include <aslGeomInc.h>
-#include "acl/aclUtilities.h"
+#include <acl/aclUtilities.h>
 
 
 typedef float FlT;
@@ -49,8 +47,7 @@ typedef asl::UValue<FlT> Param;
 int main(int argc, char* argv[])
 {
 	asl::ApplicationParametersManager appParamsManager("cubePoroelasticGravity",
-	                                                   "1.0",
-	                                                   "cubePoroelasticGravity.ini");
+	                                                   "1.0");
 	asl::Parameter<asl::AVec<int> > size("size", "size 3D");
 	asl::Parameter<cl_float> dx("dx", "dx");
 	asl::Parameter<cl_float> dt("dt", "dt");
@@ -70,7 +67,7 @@ int main(int argc, char* argv[])
 
 	asl::AVec<FlT> gNum(g.v()*dt.v()*dt.v());
 		
-	std::cout<<"cubeGravity: Data initialization..."<<flush;
+	std::cout << "Data initialization..." << flush;
 
 	asl::Block block(size.v(), dx.v());
 	auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
@@ -87,7 +84,7 @@ int main(int argc, char* argv[])
 
 	std::cout << "Finished" << endl;
 	
-	std::cout << "cubeIncompressibleGravity: Numerics initialization..."<<flush;
+	std::cout << "Numerics initialization..." << flush;
 
 	auto elasticity(generateFDPoroElasticity(displacement,
 	                                         pressureL,
@@ -103,14 +100,14 @@ int main(int argc, char* argv[])
 	asl::addBCRigidWall(bc, elasticity, {asl::X0});
 	asl::initAll(bc);
 
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "cubePoroelasticGravity");
+	asl::WriterVTKXML writer(appParamsManager.getDir() + "cubePoroelasticGravity");
 	writer.addScalars("map", *mapX);
 	writer.addVector("displacement", *displacement);
 	writer.addScalars("pressure", *elasticity->getPressureData());
 	writer.addScalars("pressureL", *elasticity->getLiquidPressureData());
 	
 	std::cout << "Finished" << endl;
-	std::cout << "Computing..."<<endl;
+	std::cout << "Computing..." << endl;
 	asl::Timer timer, timerBulk, timerBC;
 
 	executeAll(bc);
@@ -127,21 +124,21 @@ int main(int argc, char* argv[])
 		timerBC.resume();
 		executeAll(bc);
 		timerBC.stop();		
-		if(!(i % tout.v()))
+		if (!(i % tout.v()))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 	cout << "timeBulk=" << timerBulk.getTime() << 
-		    "; timeBC=" << timerBC.getTime()  << endl;
+		    "; timeBC=" << timerBC.getTime() << endl;
 
 	std::cout << "Output...";
 	std::cout << "Finished" << endl;	
diff --git a/examples/elastic/poroelastic.cc b/examples/elastic/poroelastic.cc
index e8ba4c5..b18191b 100644
--- a/examples/elastic/poroelastic.cc
+++ b/examples/elastic/poroelastic.cc
@@ -25,9 +25,7 @@
 	\example poroelastic.cc
  */
 
-#include <math/aslVectors.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <acl/aclGenerators.h>
 #include <num/aslFDPoroElasticity.h>
 #include <num/aslFDElasticityBC.h>
@@ -38,9 +36,8 @@
 #include <aslGeomInc.h>
 #include <math/aslDistanceFunction.h>
 #include <acl/aclMath/aclVectorOfElements.h>
-#include "acl/aclUtilities.h"
+#include <acl/aclUtilities.h>
 #include <math/aslIndex2Position.h>
-
 #include <readers/aslVTKFormatReaders.h>
 #include <writers/aslVTKFormatWriters.h>
 
@@ -52,7 +49,7 @@ typedef asl::UValue<FlT> Param;
 
 int main(int argc, char* argv[])
 {
-	asl::ApplicationParametersManager appParamsManager("poroelastic", "1.0", "poroelastic.ini");
+	asl::ApplicationParametersManager appParamsManager("poroelastic", "1.0");
 	asl::Parameter<asl::AVec<int> > size("size", "size 3D");
 	asl::Parameter<cl_float> dx("dx", "dx");
 	asl::Parameter<cl_float> dt("dt", "dt");
@@ -67,9 +64,9 @@ int main(int argc, char* argv[])
 	
 	appParamsManager.load(argc, argv);
 		
-	std::cout<<"Jumping Box: Data initialization...";
+	std::cout << "Data initialization...";
 
-	asl::SPDataWithGhostNodesACLData map0(asl::read(appParamsManager.getFolderWithSlash()+
+	asl::SPDataWithGhostNodesACLData map0(asl::read(appParamsManager.getDir() + 
 	                                                "brain.vti", 0));
 //	asl::Block block(size.v(), dx.v());
 	asl::Block block(map0->getInternalBlock());
@@ -81,7 +78,7 @@ int main(int argc, char* argv[])
 	asl::AVec<FlT> gNum(g.v()/dx.v());
 	Param hydraulicConductivityNum(hydraulicConductivity.v()/dx.v()/dx.v()/dx.v());
 
-	cout<<gNum<<"; "<<bulkModulusNum.v()<<"; "<<hydraulicConductivityNum.v()<<endl;
+	cout << gNum << "; " << bulkModulusNum.v() << "; " << hydraulicConductivityNum.v() << endl;
 
 	
 	auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
@@ -95,7 +92,7 @@ int main(int argc, char* argv[])
 //	initData(mapX->getEContainer(), map->getEContainer());
 	initData(mapX->getEContainer(), map0->getEContainer()*2.-1., acl::KERNEL_BASIC);
 	
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "poroelastic");
+	asl::WriterVTKXML writer(appParamsManager.getDir() + "poroelastic");
 	writer.addVector("displacement", *displacement);
 	writer.addScalars("pressure", *pressure);
 	writer.addScalars("map", *mapX);
@@ -103,7 +100,7 @@ int main(int argc, char* argv[])
 
 	std::cout << "Finished" << endl;
 	
-	std::cout << "Jumping Box: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	auto elasticity(make_shared<asl::FDPoroElasticity>(displacement,
 	                                                   pressure,
@@ -118,7 +115,7 @@ int main(int argc, char* argv[])
 	                   displacement->getBlock().position);
 	asl::SPDistanceFunction scf(asl::generateDFPlane(asl::AVec<>(g.v()),center));
 	
-	auto force ((1.-acl::sign(scf->getDistance(i2p.positionWithInit)))/2.*
+	auto force((1.-acl::sign(scf->getDistance(i2p.positionWithInit)))/2.*
 	            acl::generateVEConstant(gNum));
 	auto forceField(asl::generateDataContainer_SP(block, force, 1u));
 	
@@ -134,7 +131,7 @@ int main(int argc, char* argv[])
 	initAll(bcl);
 
 	std::cout << "Finished" << endl;
-	std::cout << "Computing..."<<flush;
+	std::cout << "Computing..." << flush;
 	asl::Timer timer;
 
 	executeAll(bcl);
@@ -146,16 +143,16 @@ int main(int argc, char* argv[])
 	{
 		elasticity->execute();
 		executeAll(bcl);
-		if(!(i % tout.v()))
+		if (!(i % tout.v()))
 			writer.write();
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
-	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+	cout << "time: " << timer.getTime() << "; clockTime: "
+		 <<  timer.getClockTime() <<  "; load: " 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
 	std::cout << "Output...";
 	std::cout << "Finished" << endl;	
diff --git a/examples/flow/compressor.cc b/examples/flow/compressor.cc
index 371aa24..9f5b0b0 100644
--- a/examples/flow/compressor.cc
+++ b/examples/flow/compressor.cc
@@ -72,7 +72,7 @@ int main()
 	// Angular velocity in one iteration
 	Param wNum(w.v()*dt.v());
 
-	std::cout<<"Compressor: Data initialization...";
+	std::cout << "Compressor: Data initialization...";
 
 
 	auto compressorMap(asl::readSurface("axial-compressor.stl", bl));
@@ -85,7 +85,7 @@ int main()
 	
 	std::cout << "Finished" << endl;
 	
-	std::cout<<"Compressor: Numerics initialization...";
+	std::cout << "Compressor: Numerics initialization...";
 
 	asl::SPLBGK lbgk(new asl::LBGK(block,
 	                               acl::generateVEConstant(FlT(nuNum.v())),
@@ -116,8 +116,8 @@ int main()
 	initAll(bcVis);
 
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing...";
+	std::cout << "Finished" << endl;
+	std::cout << "Computing...";
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("compressor");
@@ -132,28 +132,28 @@ int main()
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(1); i < 10001; ++i)
+	for (unsigned int i(1); i < 10001; ++i)
 	{
 		lbgk->execute();
 		executeAll(bc);
-		if(!(i%2000))
+		if (!(i%2000))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			executeAll(bcVis);
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/flow/flow.cc b/examples/flow/flow.cc
index d33011f..a3ec89e 100644
--- a/examples/flow/flow.cc
+++ b/examples/flow/flow.cc
@@ -26,17 +26,15 @@
  */
 
 #include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
+#include <aslDataInc.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLBGK.h>
 #include <num/aslLBGKBC.h>
-#include "utilities/aslTimer.h"
-#include "acl/aclUtilities.h"
+#include <utilities/aslTimer.h>
+#include <acl/aclUtilities.h>
 
 
 
@@ -59,7 +57,7 @@ int main()
 	auto gSize(dx.v()*AVec<>(size));
 
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Flow: Data initialization...";
 
 	asl::Block block(size,dx.v());
 
@@ -73,9 +71,9 @@ int main()
 	asl::initData(ballMapMem, ball);
 
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Flow: Numerics initialization...";
 
 	asl::SPLBGK lbgk(new asl::LBGK(block,
 	                               acl::generateVEConstant(FlT(nuNum.v())),
@@ -99,8 +97,8 @@ int main()
 	initAll(bc);
 	initAll(bcVis);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing...";
+	std::cout << "Finished" << endl;
+	std::cout << "Computing...";
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("flowRes");
@@ -115,28 +113,28 @@ int main()
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(1); i < 1001; ++i)
+	for (unsigned int i(1); i < 1001; ++i)
 	{
 		lbgk->execute();
 		executeAll(bc);
-		if(!(i%5000))
+		if (!(i%5000))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			executeAll(bcVis);
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/flow/flow2.cc b/examples/flow/flow2.cc
index 0532c8e..327245e 100644
--- a/examples/flow/flow2.cc
+++ b/examples/flow/flow2.cc
@@ -26,17 +26,15 @@
  */
 
 #include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
+#include <aslDataInc.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLBGK.h>
 #include <num/aslLBGKBC.h>
-#include "utilities/aslTimer.h"
-#include "acl/aclUtilities.h"
+#include <utilities/aslTimer.h>
+#include <acl/aclUtilities.h>
 
 
 
@@ -104,16 +102,16 @@ int main()
 	AVec<> gSize(dx.v()*AVec<>(size));
 
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Flow: Data initialization...";
 
 	asl::Block block(size,dx.v());
 
 	auto mirrorsMapMem(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
 	asl::initData(mirrorsMapMem, generateMirrors());
 
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Flow: Numerics initialization...";
 
 	asl::SPLBGK lbgk(new asl::LBGK(block, 
 				               acl::generateVEConstant(FlT(nuNum.v())),  
@@ -136,8 +134,8 @@ int main()
 	bcP->init();
 	bcTop->init();
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing...";
+	std::cout << "Finished" << endl;
+	std::cout << "Computing...";
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("flow2Res");
@@ -156,31 +154,31 @@ int main()
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(0); i < 1000  ; ++i)
+	for (unsigned int i(0); i < 1000  ; ++i)
 	{
 		lbgk->execute();
 		bcP->execute();
 		bcTop->execute();
 		bcNoSlip->execute();
 		bcNoSlipM->execute();
-		if(!(i%100))
+		if (!(i%100))
 		{
-			cout<< i <<endl;
+			cout <<  i  << endl;
 			bcNoSlipV->execute();
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/flow/flow3.cc b/examples/flow/flow3.cc
index 1d88ab8..3d7c4b8 100644
--- a/examples/flow/flow3.cc
+++ b/examples/flow/flow3.cc
@@ -26,18 +26,15 @@
  */
 
 #include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
+#include <aslDataInc.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLBGK.h>
 #include <num/aslLBGKBC.h>
-#include "utilities/aslTimer.h"
-#include "acl/aclUtilities.h"
-
+#include <utilities/aslTimer.h>
+#include <acl/aclUtilities.h>
 
 
 typedef float FlT;
@@ -79,7 +76,7 @@ int main()
 	auto gSize(dx.v()*AVec<>(size));
 
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Flow: Data initialization...";
 
 	asl::Block block(size,dx.v());
 
@@ -87,9 +84,9 @@ int main()
 	asl::initData(cylindersMapMem, generateOrderedCylinders(block));
 
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Flow: Numerics initialization...";
 
 	asl::SPLBGK lbgk(new asl::LBGK(block, 
 				               acl::generateVEConstant(FlT(nuNum.v())),  
@@ -114,8 +111,8 @@ int main()
 	bcIn.init();
 	bcOut.init();
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing...";
+	std::cout << "Finished" << endl;
+	std::cout << "Computing...";
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("flow3Res");
@@ -134,31 +131,31 @@ int main()
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(0); i < 1000; ++i)
+	for (unsigned int i(0); i < 1000; ++i)
 	{
 		lbgk->execute();
 		bcIn.execute();
 		bcOut.execute();
 		bcNoSlip->execute();
 		bcNoSlipM->execute();
-		if(!(i%100))
+		if (!(i%100))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			bcNoSlipV->execute();
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/flow/flowKDPGrowth.cc b/examples/flow/flowKDPGrowth.cc
index 92eaf13..5b718b6 100644
--- a/examples/flow/flowKDPGrowth.cc
+++ b/examples/flow/flowKDPGrowth.cc
@@ -26,7 +26,6 @@
  */
 
 #include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
 #include <math/aslPositionFunction.h>
@@ -39,7 +38,7 @@
 #include <num/aslBasicBC.h>
 #include <num/aslCrystalGrowthBC.h>
 #include <num/aslFDAdvectionDiffusion.h>
-#include "utilities/aslTimer.h"
+#include <utilities/aslTimer.h>
 
 using asl::AVec;
 using asl::makeAVec;
@@ -221,7 +220,7 @@ int main()
 
 	AVec<> gSize(dx.v()*AVec<>(size));
 
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
     auto templ(&asl::d3q19());	
 	asl::Block block(size,dx.v());
@@ -240,9 +239,9 @@ int main()
 	auto cField(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
 	asl::initData(cField, c0.v());
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	asl::SPLBGK lbgk(new asl::LBGK(block, 
 				               acl::generateVEConstant(FlT(nuNum.v())),  
@@ -287,8 +286,8 @@ int main()
 	initAll(bcV);
 	initAll(bcDif);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing...";
+	std::cout << "Finished" << endl;
+	std::cout << "Computing...";
 	asl::Timer timer;
 	asl::Timer timerBC;
 
@@ -309,7 +308,7 @@ int main()
 
 	timer.start();
 	timerBC.reset();
-	for(unsigned int i(0); i <= 8001  ; ++i)
+	for (unsigned int i(0); i <= 8001  ; ++i)
 	{
 		lbgk->execute();
 		timerBC.resume();
@@ -321,24 +320,24 @@ int main()
 		executeAll(bcDif);
 		timerBC.stop();
 		
-		if(!(i%2000))
+		if (!(i%2000))
 		{
-			cout<< i <<endl;
+			cout <<  i  << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%; timeBC = " 
-		<< timerBC.getTime() << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%; timeBC = " 
+		 <<  timerBC.getTime() << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/flow/flowRotatingCylinders.cc b/examples/flow/flowRotatingCylinders.cc
index a0ad87a..1c2f695 100644
--- a/examples/flow/flowRotatingCylinders.cc
+++ b/examples/flow/flowRotatingCylinders.cc
@@ -26,17 +26,15 @@
  */
 
 #include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
+#include <aslDataInc.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
 #include <math/aslPositionFunction.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLBGK.h>
 #include <num/aslLBGKBC.h>
-#include "utilities/aslTimer.h"
+#include <utilities/aslTimer.h>
 
 
 
@@ -62,7 +60,7 @@ int main()
 	AVec<> gSize(dx.v()*AVec<>(size));
 
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Flow: Data initialization...";
 
 	asl::Block block(size,dx.v());
 
@@ -91,9 +89,9 @@ int main()
 	                             dx.v()));
 
 		
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Flow: Numerics initialization...";
 
 	asl::SPLBGK lbgk(new asl::LBGK(block, 
 				               acl::generateVEConstant(FlT(nuNum.v())),  
@@ -118,8 +116,8 @@ int main()
 	initAll(bc);
 	initAll(bcV);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing...";
+	std::cout << "Finished" << endl;
+	std::cout << "Computing...";
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("flowRotCylRes");
@@ -135,28 +133,28 @@ int main()
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(0); i < 10001  ; ++i)
+	for (unsigned int i(0); i < 10001  ; ++i)
 	{
 		lbgk->execute();
 		executeAll(bc);
-		if(!(i%1000))
+		if (!(i%1000))
 		{
-			cout<< i <<endl;
+			cout <<  i  << endl;
 			executeAll(bcV);
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/flow/locomotive_in_tunnel.cc b/examples/flow/locomotive_in_tunnel.cc
index a6ef8b1..a61342a 100644
--- a/examples/flow/locomotive_in_tunnel.cc
+++ b/examples/flow/locomotive_in_tunnel.cc
@@ -71,19 +71,19 @@ asl::SPDistanceFunction generateTunnel(asl::Block & bl)
 int main(int argc, char* argv[])
 {
 	asl::ApplicationParametersManager appParamsManager("locomotive_in_tunnel",
-	                                                   "1.0",
-	                                                   "locomotive_in_tunnel.ini");
-	asl::Parameter<FlT> dx(0.08, "dx", "space step");
-	asl::Parameter<FlT> dt(1., "dt", "time step");
+	                                                   "1.0");
+	asl::Parameter<FlT> dx(0.08, "dx", "space step", "m");
+	asl::Parameter<FlT> dt(1., "dt", "time step", "s");
 	asl::Parameter<FlT> nu(.001, "nu", "viscosity");
 
-	
+	appParamsManager.load(argc, argv);
+cout << "getDir(): " << appParamsManager.getDir() << endl;
 	AVec<int> size(makeAVec(40., 10., 15.) * (1. / dx.v()));
 	asl::Block bl(size, dx.v(), makeAVec(-30., 8.58, 1.53));
 	
 	asl::UValue<FlT> nuNum(nu.v() * dt.v() / dx.v() / dx.v());
 	
-	std::cout << "Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	auto locomotive(asl::readSurface("locomotive.stl", bl));
 	
@@ -97,7 +97,7 @@ int main(int argc, char* argv[])
 	
 	std::cout << "Finished" << endl;
 	
-	std::cout << "Flow: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	asl::SPLBGK lbgk(new asl::LBGKTurbulence(block, 
 	                                         acl::generateVEConstant(FlT(nu.v())),  
@@ -133,7 +133,7 @@ int main(int argc, char* argv[])
 	std::cout << "Computing...";
 	asl::Timer timer;
 
-	asl::WriterVTKXML writer("locomotive_in_tunnel");
+	asl::WriterVTKXML writer(appParamsManager.getDir() + "locomotive_in_tunnel");
 	writer.addScalars("map", *locomotive);
 	writer.addScalars("tunnel", *tunnelMap);
 	writer.addScalars("rho", *lbgk->getRho());
@@ -147,11 +147,11 @@ int main(int argc, char* argv[])
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(1); i < 20001; ++i)
+	for (unsigned int i(1); i < 20001; ++i)
 	{
 		lbgk->execute();
 		executeAll(bc);
-		if(!(i%1000))
+		if (!(i%1000))
 		{
 			cout << i << endl;
 			executeAll(bcV);
diff --git a/examples/flow/locomotive_laminar.cc b/examples/flow/locomotive_laminar.cc
index bd4e5d1..0e8ff64 100644
--- a/examples/flow/locomotive_laminar.cc
+++ b/examples/flow/locomotive_laminar.cc
@@ -26,7 +26,6 @@
  */
 
 #include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
 #include <math/aslPositionFunction.h>
@@ -35,8 +34,8 @@
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLBGK.h>
 #include <num/aslLBGKBC.h>
-#include "utilities/aslTimer.h"
-#include "acl/aclUtilities.h"
+#include <utilities/aslTimer.h>
+#include <acl/aclUtilities.h>
 #include <readers/aslVTKFormatReaders.h>
 
 
diff --git a/examples/flow/multicomponent_flow.cc b/examples/flow/multicomponent_flow.cc
index 198157c..e8f0407 100644
--- a/examples/flow/multicomponent_flow.cc
+++ b/examples/flow/multicomponent_flow.cc
@@ -51,7 +51,6 @@ class Parameters
 
   public:
 		asl::ApplicationParametersManager appParamsManager;
-		string folder;
 
 		asl::Block::DV size;
 		asl::Parameter<double> dx;
@@ -80,7 +79,7 @@ class Parameters
 
 
 Parameters::Parameters():
-	appParamsManager("multicomponent_flow", "0.1", "multicomponent_flow.ini"),
+	appParamsManager("multicomponent_flow", "0.1"),
 	size(3),
 	dx(0.0005, "dx", "space step"),
 	dt(1., "dt", "time step"),
@@ -101,8 +100,6 @@ Parameters::Parameters():
 void Parameters::load(int argc, char * argv[])
 {
 	appParamsManager.load(argc, argv);
-	folder = appParamsManager.getFolderWithSlash();
-
 	init();
 }
 
@@ -149,7 +146,7 @@ int main(int argc, char *argv[])
 	Parameters params;
 	params.load(argc, argv);
 	
-	std::cout << "Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(params.size, params.dx.v());
 
@@ -164,7 +161,7 @@ int main(int argc, char *argv[])
 	
 	std::cout << "Finished" << endl;
 	
-	std::cout << "Flow: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	auto templ(&asl::d3q15());	
 	
@@ -232,7 +229,7 @@ int main(int argc, char *argv[])
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(1); i < 10001; ++i)
+	for (unsigned int i(1); i < 10001; ++i)
 	{
 		lbgk->execute();
 		executeAll(bcDif);
@@ -240,7 +237,7 @@ int main(int argc, char *argv[])
 		nmcomponent3->execute();
 		executeAll(bc);
 		
-		if(!(i%100))
+		if (!(i%100))
 		{
 			timer.stop();
 			cout << i << "/10000; expected left time: " <<  timer.getLeftTime(double(i)/10000.)  << endl;
@@ -254,7 +251,7 @@ int main(int argc, char *argv[])
 	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		 <<  timer.getClockTime()	 <<  "; load=" 
+		 <<  timer.getClockTime() <<  "; load=" 
 		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
 	std::cout << "Output...";
diff --git a/examples/flow/multiphase_flow.cc b/examples/flow/multiphase_flow.cc
index fed6020..ee736cb 100644
--- a/examples/flow/multiphase_flow.cc
+++ b/examples/flow/multiphase_flow.cc
@@ -27,17 +27,14 @@
  */
 
 #include <utilities/aslParametersManager.h>
-#include <math/aslVectors.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLBGK.h>
 #include <num/aslLBGKBC.h>
-#include "utilities/aslTimer.h"
-#include "acl/aclUtilities.h"
+#include <utilities/aslTimer.h>
 #include <num/aslFDMultiPhase.h>
 #include <num/aslBasicBC.h>
 
@@ -56,7 +53,6 @@ class Parameters
 
   public:
 		asl::ApplicationParametersManager appParamsManager;
-		string folder;
 
 		asl::Block::DV size;
 
@@ -80,13 +76,14 @@ class Parameters
 		
 		
 		void load(int argc, char * argv[]);
+		string getDir();
 		Parameters();
 		void updateNumValues();
 };
 
 
 Parameters::Parameters():
-	appParamsManager("multiphase_flow", "0.1", "multiphase_flow.ini"),
+	appParamsManager("multiphase_flow", "0.1"),
 	size(3),
 	dx(0.002, "dx", "space step"),
 	dt(1., "dt", "time step"),
@@ -107,12 +104,17 @@ Parameters::Parameters():
 void Parameters::load(int argc, char * argv[])
 {
 	appParamsManager.load(argc, argv);
-	folder = appParamsManager.getFolderWithSlash();
 
 	init();
 }
 
 
+string Parameters::getDir()
+{
+	return appParamsManager.getDir();
+}
+
+
 void Parameters::updateNumValues()
 {
 	nuNum = nu.v() * dt.v() / dx.v() / dx.v();
@@ -152,7 +154,7 @@ int main(int argc, char *argv[])
 	Parameters params;
 	params.load(argc, argv);
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(params.size, params.dx.v());
 
@@ -162,9 +164,9 @@ int main(int argc, char *argv[])
 	auto waterFrac(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
 	asl::initData(waterFrac, 0);
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	auto templ(&asl::d3q15());	
 	
@@ -202,11 +204,11 @@ int main(int argc, char *argv[])
 	initAll(bcDif);
 	initAll(bcV);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing..."<<endl;
+	std::cout << "Finished" << endl;
+	std::cout << "Computing..." << endl;
 	asl::Timer timer;
 
-	asl::WriterVTKXML writer("multiphase_flow");
+	asl::WriterVTKXML writer(params.getDir() + "multiphase_flow");
 	writer.addScalars("map", *mpfMapMem);
 	writer.addScalars("water", *waterFrac);
 	writer.addScalars("rho", *lbgk->getRho());
@@ -219,17 +221,17 @@ int main(int argc, char *argv[])
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(1); i < 2001; ++i)
+	for (unsigned int i(1); i < 2001; ++i)
 	{
 		lbgk->execute();
 		executeAll(bcDif);
 		nmWater->execute();
 		executeAll(bc);
 		
-		if(!(i%200))
+		if (!(i%200))
 		{
 			timer.stop();
-			cout<<i<<"/2000; expected left time: "<< timer.getLeftTime(double(i)/2000.) <<endl;
+			cout << i << "/2000; expected left time: " <<  timer.getLeftTime(double(i)/2000.)  << endl;
 			executeAll(bcV);
 			writer.write();
 			timer.resume();
@@ -237,15 +239,15 @@ int main(int argc, char *argv[])
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/flow/pitot_tube_ice.cc b/examples/flow/pitot_tube_ice.cc
index 5434419..1f09c83 100644
--- a/examples/flow/pitot_tube_ice.cc
+++ b/examples/flow/pitot_tube_ice.cc
@@ -27,7 +27,6 @@
  */
 
 #include <utilities/aslParametersManager.h>
-#include <math/aslVectors.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
 #include <aslGenerators.h>
@@ -35,7 +34,7 @@
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLBGK.h>
 #include <num/aslLBGKBC.h>
-#include "utilities/aslTimer.h"
+#include <utilities/aslTimer.h>
 #include <num/aslFDAdvectionDiffusion.h>
 #include <num/aslBasicBC.h>
 
@@ -54,7 +53,6 @@ class Parameters
 
   public:
 		asl::ApplicationParametersManager appParamsManager;
-		string folder;
 
 		asl::Block::DV size;
 
@@ -83,7 +81,7 @@ class Parameters
 
 
 Parameters::Parameters():
-	appParamsManager("pitot_tube_ice", "0.1", "pitot_tube_ice.ini"),
+	appParamsManager("pitot_tube_ice", "0.1"),
 	size(3),
 	dx(0.000125, "dx", "space step"),
 	dt(1., "dt", "time step"),
@@ -104,7 +102,6 @@ Parameters::Parameters():
 void Parameters::load(int argc, char * argv[])
 {
 	appParamsManager.load(argc, argv);
-	folder = appParamsManager.getFolderWithSlash();
 
 	init();
 }
@@ -153,7 +150,7 @@ int main(int argc, char *argv[])
 	Parameters params;
 	params.load(argc, argv);
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(params.size, params.dx.v());
 
@@ -164,9 +161,9 @@ int main(int argc, char *argv[])
 //	asl::initData(waterFrac, 0);
 	
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Flow: Numerics initialization...";
 
 	auto templ(&asl::d3q15());	
 	
@@ -202,11 +199,11 @@ int main(int argc, char *argv[])
 	initAll(bcDif);
 	initAll(bcV);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing..."<<endl;
+	std::cout << "Finished" << endl;
+	std::cout << "Computing..." << endl;
 	asl::Timer timer;
 
-	asl::WriterVTKXML writer("pitot_tube");
+	asl::WriterVTKXML writer(params.appParamsManager.getDir() + "pitot_tube");
 	writer.addScalars("map", *mcfMapMem);
 //	writer.addScalars("water", *waterFrac);
 	writer.addScalars("rho", *lbgk->getRho());
@@ -229,7 +226,7 @@ int main(int argc, char *argv[])
 		if(!(i%800))
 		{
 			timer.stop();
-			cout<<i<<"/8000; expected left time: "<< timer.getLeftTime(double(i)/8000.) <<endl;
+			cout << i << "/8000; expected left time: " <<  timer.getLeftTime(double(i)/8000.)  << endl;
 			executeAll(bcV);
 			writer.write();
 			timer.resume();
@@ -237,15 +234,15 @@ int main(int argc, char *argv[])
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/heatTransfer/surfaceFlux.cc b/examples/heatTransfer/surfaceFlux.cc
index 5eca620..08f3a6d 100644
--- a/examples/heatTransfer/surfaceFlux.cc
+++ b/examples/heatTransfer/surfaceFlux.cc
@@ -26,17 +26,16 @@
  */
 
 #include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
 #include <math/aslTemplates.h>
 #include <aslGeomInc.h>
-//#include <data/aslDataWithGhostNodes.h>
 #include <aslDataInc.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslFDAdvectionDiffusion.h>
 #include <num/aslBasicBC.h>
-#include "utilities/aslTimer.h"
-#include "acl/aclUtilities.h"
+#include <utilities/aslTimer.h>
+#include <acl/aclUtilities.h>
+
 
 typedef float FlT;
 //typedef double FlT;
@@ -57,7 +56,7 @@ int main()
 	auto gSize(dx.v()*AVec<>(size));
 
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size,dx.v());
 
@@ -78,9 +77,9 @@ int main()
 	asl::initData(cField, 0.);
 
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << " Numerics initialization...";
 
 	auto templ(&asl::d3q15());
 	auto nm(generateFDAdvectionDiffusion(cField,  diffCoefNum.v(), templ));
@@ -93,8 +92,8 @@ int main()
 	bc.push_back(asl::generateBCConstantValue(cField, 0, ballBMapMem));
 	initAll(bc);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing..."<<flush;
+	std::cout << "Finished" << endl;
+	std::cout << "Computing..." << flush;
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("surfaceFlux");
@@ -106,27 +105,27 @@ int main()
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(1); i < 201; ++i)
+	for (unsigned int i(1); i < 201; ++i)
 	{
 		nm->execute();
 		executeAll(bc);
-		if(!(i%40))
+		if (!(i%40))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/input_data/brain.vti b/examples/input_data/brain.vti
new file mode 100644
index 0000000..2be936c
Binary files /dev/null and b/examples/input_data/brain.vti differ
diff --git a/examples/jumpingObjects/jumpingBox.cc b/examples/jumpingObjects/jumpingBox.cc
index 11f47ae..3d24b33 100644
--- a/examples/jumpingObjects/jumpingBox.cc
+++ b/examples/jumpingObjects/jumpingBox.cc
@@ -25,9 +25,7 @@
 	\example jumpingBox.cc
  */
 
-#include <math/aslVectors.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <acl/aclGenerators.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslFDElasticity.h>
@@ -45,8 +43,7 @@ typedef asl::UValue<FlT> Param;
 
 int main(int argc, char* argv[])
 {
-	asl::ApplicationParametersManager appParamsManager("jumpingBox", "1.0",
-	                                                   "jumpingBox.ini");
+	asl::ApplicationParametersManager appParamsManager("jumpingBox", "1.0");
 	asl::Parameter<asl::AVec<int> > size("size", "size 3D");
 	asl::Parameter<cl_float> dx("dx", "dx");
 	asl::Parameter<cl_float> dt("dt", "dt");
@@ -65,20 +62,20 @@ int main(int argc, char* argv[])
 
 	asl::AVec<FlT> gNum(g.v()/dx.v());
 		
-	std::cout<<"Jumping Box: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size.v(), dx.v());
 	auto displacement(asl::generateDataContainerACL_SP<FlT>(block, 3, 1u));
 	acl::initData(displacement->getEContainer(), acl::generateVEConstantN(3,0));
 
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "jumpingBox");
+	asl::WriterVTKXML writer(appParamsManager.getDir() + "jumpingBox");
 	writer.addScalars("displacement", *displacement);
 	writer.addVector("displacement", *displacement);
 	writer.write();
 
 	std::cout << "Finished" << endl;
 	
-	std::cout << "Jumping Box: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	asl::SPFDElasticity2 elasticity(new asl::FDElasticity2(displacement,
 	                                                       acl::generateVEConstant(bulkModulusNum.v()),
@@ -120,11 +117,11 @@ int main(int argc, char* argv[])
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime()	 <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
 	std::cout << "Output...";
 	std::cout << "Finished" << endl;	
diff --git a/examples/levelSet/levelSetBasic.cc b/examples/levelSet/levelSetBasic.cc
index dab1ceb..46c2049 100644
--- a/examples/levelSet/levelSetBasic.cc
+++ b/examples/levelSet/levelSetBasic.cc
@@ -25,10 +25,7 @@
 	\example levelSetBasic.cc
  */
 
-#include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslInterfaceTrackingAlg1.h>
 #include <utilities/aslTimer.h>
@@ -36,7 +33,6 @@
 #include <math/aslTemplates.h>
 #include <acl/aclMath/aclVectorOfElements.h>
 #include <acl/aclUtilities.h>
-
 #include <aslGeomInc.h>
 
 typedef float FlT;
@@ -47,8 +43,7 @@ acl::TypeID type(acl::typeToTypeID<FlT>());
 
 int main(int argc, char* argv[])
 {
-	asl::ApplicationParametersManager appParamsManager("levelSetBasic", "1.0",
-	                                                   "levelSetBasic.ini");
+	asl::ApplicationParametersManager appParamsManager("levelSetBasic", "1.0");
 
 	asl::Parameter<asl::AVec<int>> size("size", "size");
 	asl::Parameter<FlT> dx("dx", "dx");
@@ -62,7 +57,7 @@ int main(int argc, char* argv[])
 
 	appParamsManager.load(argc, argv);
 	
-	std::cout<<"Jumping Box: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size.v(), dx.v());
 	auto levelSet(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
@@ -73,12 +68,12 @@ int main(int argc, char* argv[])
 	auto velocity(asl::generateDataContainerConst_SP(block, v.v(), 1u));
 
 	
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "levelSetBasic");
+	asl::WriterVTKXML writer(appParamsManager.getDir() +  "levelSetBasic");
 	writer.addScalars("levelSet", *levelSet);
 	
 	std::cout << "Finished" << endl;
 	
-	std::cout << "LevelSetBasic: Numerics initialization..." << flush;
+	std::cout << "Numerics initialization..." << flush;
 
 	auto lsNum(std::make_shared<asl::InterfaceTrackingAlg1>(levelSet,velocity));
 	
@@ -99,11 +94,11 @@ int main(int argc, char* argv[])
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime()	 <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
 	std::cout << "Output...";
 	std::cout << "Finished" << endl;	
diff --git a/examples/levelSet/levelSetFacetedGrowth.cc b/examples/levelSet/levelSetFacetedGrowth.cc
index 7e03556..9a8ab7b 100644
--- a/examples/levelSet/levelSetFacetedGrowth.cc
+++ b/examples/levelSet/levelSetFacetedGrowth.cc
@@ -25,10 +25,7 @@
 	\example levelSetFacetedGrowth.cc
  */
 
-#include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLSFacetedGrowth.h>
 #include <utilities/aslTimer.h>
@@ -36,7 +33,6 @@
 #include <math/aslTemplates.h>
 #include <acl/aclMath/aclVectorOfElements.h>
 #include <acl/aclUtilities.h>
-
 #include <aslGeomInc.h>
 
 typedef float FlT;
@@ -48,8 +44,7 @@ acl::TypeID type(acl::typeToTypeID<FlT>());
 int main(int argc, char* argv[])
 {
 	asl::ApplicationParametersManager appParamsManager("levelSetFacetedGrowth",
-	                                                   "1.0",
-	                                                   "levelSetFacetedGrowth.ini");
+	                                                   "1.0");
 
 	asl::Parameter<asl::AVec<int>> size("size", "size");
 	asl::Parameter<FlT> dx("dx", "dx");
@@ -68,7 +63,7 @@ int main(int argc, char* argv[])
 
 	appParamsManager.load(argc, argv);
 
-	std::cout << "LevelSet: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size.v(), dx.v());
 	auto levelSet(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
@@ -82,12 +77,12 @@ int main(int argc, char* argv[])
 	auto superSaturation(asl::generateDataContainerConst_SP(block, superS.v(), 1u));
 
 	
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "levelSetFacetedGrowth");
+	asl::WriterVTKXML writer(appParamsManager.getDir() +  "levelSetFacetedGrowth");
 	writer.addScalars("levelSet", *levelSet);
 	
 	std::cout << "Finished" << endl;
 	
-	std::cout << "LevelSetBasic: Numerics initialization..." << flush;
+	std::cout << "Numerics initialization..." << flush;
 
 	auto lsNum(std::make_shared<asl::LSFacetedGrowth>(levelSet, superSaturation));
 
@@ -107,7 +102,7 @@ int main(int argc, char* argv[])
 	for (unsigned int i(0); i < nIterations.v(); ++i)
 	{
 		lsNum->execute();
-		if(!(i % nItOut.v()))
+		if (!(i % nItOut.v()))
 			writer.write();		
 	}
 	timer.stop();
@@ -115,7 +110,7 @@ int main(int argc, char* argv[])
 	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		 <<  timer.getClockTime()	 <<  "; load=" 
+		 <<  timer.getClockTime() <<  "; load=" 
 		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
 	std::cout << "Output...";
diff --git a/examples/levelSet/levelSetNormalGrowth.cc b/examples/levelSet/levelSetNormalGrowth.cc
index 50b8f33..eef7b24 100644
--- a/examples/levelSet/levelSetNormalGrowth.cc
+++ b/examples/levelSet/levelSetNormalGrowth.cc
@@ -25,10 +25,7 @@
 	\example levelSetNormalGrowth.cc
  */
 
-#include <utilities/aslUValue.h>
-#include <math/aslVectors.h>
-#include <data/aslDataWithGhostNodes.h>
-#include <aslGenerators.h>
+#include <aslDataInc.h>
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslLSNormalGrowth.h>
 #include <utilities/aslTimer.h>
@@ -36,9 +33,7 @@
 #include <math/aslTemplates.h>
 #include <acl/aclMath/aclVectorOfElements.h>
 #include <acl/aclUtilities.h>
-
 #include <aslGeomInc.h>
-//#include <math/aslIndex2Position.h>
 
 
 typedef float FlT;
@@ -49,8 +44,8 @@ acl::TypeID type(acl::typeToTypeID<FlT>());
 
 int main(int argc, char* argv[])
 {
-	asl::ApplicationParametersManager appParamsManager("levelSetNormalGrowth", "1.0",
-	                                                   "levelSetNormalGrowth.ini");
+	asl::ApplicationParametersManager appParamsManager("levelSetNormalGrowth",
+	                                                   "1.0");
 
 	asl::Parameter<asl::AVec<int>> size("size", "size");
 	asl::Parameter<FlT> dx("dx", "dx");
@@ -64,7 +59,7 @@ int main(int argc, char* argv[])
 
 	appParamsManager.load(argc, argv);
 	
-	std::cout<<"LevelSet: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size.v(), dx.v());
 	auto levelSet(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
@@ -78,12 +73,12 @@ int main(int argc, char* argv[])
 	auto superSaturation(asl::generateDataContainerConst_SP(block, superS.v(), 1u));
 
 	
-	asl::WriterVTKXML writer(appParamsManager.getFolderWithSlash() + "levelSetNormalGrowth");
+	asl::WriterVTKXML writer(appParamsManager.getDir() + "levelSetNormalGrowth");
 	writer.addScalars("levelSet", *levelSet);
 	
 	std::cout << "Finished" << endl;
 	
-	std::cout << "LevelSetBasic: Numerics initialization..." << flush;
+	std::cout << "Numerics initialization..." << flush;
 
 	auto lsNum(std::make_shared<asl::LSNormalGrowth>(levelSet, superSaturation));
 	
@@ -99,16 +94,16 @@ int main(int argc, char* argv[])
 	for (unsigned int i(0); i < nIterations.v(); ++i)
 	{
 		lsNum->execute();
-		if(!(i % nItOut.v()))
+		if (!(i % nItOut.v()))
 			writer.write();		
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 << timer.getClockTime()	 << "; load=" 
+		 << timer.getProcessorLoad() * 100 << "%" << endl;
 
 	std::cout << "Output...";
 	std::cout << "Finished" << endl;	
diff --git a/examples/massTransferSM/testSMDiff.cc b/examples/massTransferSM/testSMDiff.cc
index cc53887..bcac1ff 100644
--- a/examples/massTransferSM/testSMDiff.cc
+++ b/examples/massTransferSM/testSMDiff.cc
@@ -34,7 +34,7 @@
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslFDStefanMaxwell.h>
 #include <num/aslBasicBC.h>
-#include "utilities/aslTimer.h"
+#include <utilities/aslTimer.h>
 //#include "acl/aclUtilities.h"
 
 typedef float FlT;
@@ -57,7 +57,7 @@ int main()
 	auto gSize(dx.v()*AVec<>(size));
 
 	
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size,dx.v());
 	
@@ -67,9 +67,9 @@ int main()
 	asl::initData(c2Field, 0.5);	
 
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	auto templ(&asl::d3q7());
 	auto nm(generateFDStefanMaxwell(c1Field, c2Field,  diffCoefNum.v(), templ));
@@ -87,8 +87,8 @@ int main()
 	bc.push_back(asl::generateBCConstantValue(c2Field, 1, {asl::X0}));
 	initAll(bc);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing..."<<flush;
+	std::cout << "Finished" << endl;
+	std::cout << "Computing..." << flush;
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("surfaceFlux");
@@ -105,21 +105,21 @@ int main()
 		executeAll(bc);
 		if(!(i%40))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/massTransferSM/testSMDiff3C.cc b/examples/massTransferSM/testSMDiff3C.cc
index 6db0893..8c3eade 100644
--- a/examples/massTransferSM/testSMDiff3C.cc
+++ b/examples/massTransferSM/testSMDiff3C.cc
@@ -35,8 +35,8 @@
 #include <writers/aslVTKFormatWriters.h>
 #include <num/aslFDStefanMaxwell.h>
 #include <num/aslBasicBC.h>
-#include "utilities/aslTimer.h"
-#include "acl/aclMath/aclVectorOfElements.h"
+#include <utilities/aslTimer.h>
+#include <acl/aclMath/aclVectorOfElements.h>
 
 typedef float FlT;
 //typedef double FlT;
diff --git a/examples/massTransferSM/testSMPhi.cc b/examples/massTransferSM/testSMPhi.cc
index 2e75c51..c291a2d 100644
--- a/examples/massTransferSM/testSMPhi.cc
+++ b/examples/massTransferSM/testSMPhi.cc
@@ -56,7 +56,7 @@ int main()
 
 	auto gSize(dx.v()*AVec<>(size));
 
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size,dx.v());
 	
@@ -67,9 +67,9 @@ int main()
 	auto phiField(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
 	asl::initData(phiField, 0.5);	
 
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	auto templ(&asl::d3q7());
 	auto nm(generateFDStefanMaxwell(c1Field, c2Field,  diffCoefNum.v(), templ));
@@ -100,8 +100,8 @@ int main()
 	bcPhi.push_back(asl::generateBCConstantValue(phiField, 0, {asl::X0}));
 	initAll(bcPhi);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing..."<<flush;
+	std::cout << "Finished" << endl;
+	std::cout << "Computing..." << flush;
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("out");
@@ -123,23 +123,23 @@ int main()
 		}
 		nm->execute();
 		executeAll(bc);
-		if(!(i%40))
+		if (!(i%40))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/examples/massTransferSM/testSMPhiBV.cc b/examples/massTransferSM/testSMPhiBV.cc
index 2e68fa1..9a7bee9 100644
--- a/examples/massTransferSM/testSMPhiBV.cc
+++ b/examples/massTransferSM/testSMPhiBV.cc
@@ -58,7 +58,7 @@ int main()
 
 	auto gSize(dx.v()*AVec<>(size));
 
-	std::cout<<"Flow: Data initialization...";
+	std::cout << "Data initialization...";
 
 	asl::Block block(size,dx.v());
 	
@@ -75,9 +75,9 @@ int main()
 	auto phiSField(asl::generateDataContainerACL_SP<FlT>(block, 1, 1u));
 	asl::initData(phiSField, 0.);	
 	
-	std::cout<<"Finished"<<endl;
+	std::cout << "Finished" << endl;
 	
-	std::cout<<"Flow: Numerics initialization...";
+	std::cout << "Numerics initialization...";
 
 	auto templ(&asl::d3q7());
 	auto nm(generateFDStefanMaxwell(c1Field, c2Field,  diffCoefNum.v(), templ));
@@ -121,8 +121,8 @@ int main()
 	bcPhi.push_back(asl::generateBCConstantValue(phiField, 0, {asl::X0}));
 	initAll(bcPhi);
 
-	std::cout<<"Finished"<<endl;
-	std::cout<<"Computing..."<<flush;
+	std::cout << "Finished" << endl;
+	std::cout << "Computing..." << flush;
 	asl::Timer timer;
 
 	asl::WriterVTKXML writer("out");
@@ -137,9 +137,9 @@ int main()
 	writer.write();
 
 	timer.start();
-	for(unsigned int i(1); i < 401; ++i)
+	for (unsigned int i(1); i < 401; ++i)
 	{
-		for(unsigned int j(0); j<50; ++j)
+		for (unsigned int j(0); j<50; ++j)
 		{
 			nmBV->executeJ();
 			nmPhi->execute();
@@ -149,23 +149,23 @@ int main()
 		nmA->execute();
 		nmBV->execute();
 		executeAll(bc);
-		if(!(i%40))
+		if (!(i%40))
 		{
-			cout<<i<<endl;
+			cout << i << endl;
 			writer.write();
 		}
 	}
 	timer.stop();
 	
-	std::cout<<"Finished"<<endl;	
+	std::cout << "Finished" << endl;	
 
 	cout << "time=" << timer.getTime() << "; clockTime="
-		<< timer.getClockTime()	<< "; load=" 
-		<< timer.getProcessorLoad() * 100 << "%" << endl;
+		 <<  timer.getClockTime() <<  "; load=" 
+		 <<  timer.getProcessorLoad() * 100 << "%" << endl;
 
-	std::cout<<"Output...";
-	std::cout<<"Finished"<<endl;	
-	std::cout<<"Ok"<<endl;
+	std::cout << "Output...";
+	std::cout << "Finished" << endl;	
+	std::cout << "Ok" << endl;
 
 	return 0;
 }
diff --git a/src/utilities/aslParametersManager.cxx b/src/utilities/aslParametersManager.cxx
index b100338..568c710 100644
--- a/src/utilities/aslParametersManager.cxx
+++ b/src/utilities/aslParametersManager.cxx
@@ -128,11 +128,10 @@ namespace asl
 	};
 		
 
-
 	template <typename T>
-	Parameter<T>::Parameter(string key_,
-	                        string description_,
-	                        string units_):
+	Parameter<T>::Parameter(const char* key_,
+	                        const char* description_,
+	                        const char* units_):
 		key(key_),
 		description(description_),
 		units(units_)
@@ -144,35 +143,36 @@ namespace asl
 		WildcardCheck<T>::check(key, parameter.p);
 
 		ParametersManager::current->add(parameter,
-		                                key,
-		                                description);
+		                                key.c_str(),
+		                                description.c_str(),
+		                                units.c_str());
 	}
 
-	template Parameter<string>::Parameter(string key,
-	                                      string description,
-	                                      string units);
+	template Parameter<string>::Parameter(const char* key,
+	                                      const char* description,
+	                                      const char* units);
 		
 	#define BOOST_TT_rep_expression(r, data, t) \
-		template Parameter<t>::Parameter(string key, \
-										 string description, \
-										 string units); \
-		template Parameter<AVec<t>>::Parameter(string key, \
-											   string description, \
-											   string units); \
-		template Parameter<map<string, t>>::Parameter(string key, \
-													  string description, \
-													  string units); \
-		template Parameter<map<string, AVec<t>>>::Parameter(string key, \
-															string description, \
-															string units);
+		template Parameter<t>::Parameter(const char* key, \
+										 const char* description, \
+										 const char* units); \
+		template Parameter<AVec<t>>::Parameter(const char* key, \
+											   const char* description, \
+											   const char* units); \
+		template Parameter<map<string, t>>::Parameter(const char* key, \
+													  const char* description, \
+													  const char* units); \
+		template Parameter<map<string, AVec<t>>>::Parameter(const char* key, \
+															const char* description, \
+															const char* units);
 	BOOST_PP_SEQ_FOR_EACH(BOOST_TT_rep_expression, ~, BOOST_TT_acl_types)
 	#undef BOOST_TT_rep_expression
 
 
 	template <typename T> Parameter<T>::Parameter(T defaultValue,
-	                                              string key_,
-	                                              string description_,
-	                                              string units_):
+	                                              const char* key_,
+	                                              const char* description_,
+	                                              const char* units_):
 		key(key_),
 		description(description_),
 		units(units_)
@@ -183,24 +183,25 @@ namespace asl
 		
 		ParametersManager::current->add(parameter,
 		                                defaultValue,
-		                                key,
-		                                description);
+		                                key.c_str(),
+		                                description.c_str(),
+		                                units.c_str());
 	}
 
 	template Parameter<string>::Parameter(string defaultValue,
-	                                      string key,
-	                                      string description,
-	                                      string units);
+	                                      const char* key,
+	                                      const char* description,
+	                                      const char* units);
 		
 	#define BOOST_TT_rep_expression(r, data, t) \
 		template Parameter<t>::Parameter(t defaultValue, \
-										 string key, \
-										 string description, \
-										 string units); \
+										 const char* key, \
+										 const char* description, \
+										 const char* units); \
 		template Parameter<AVec<t>>::Parameter(AVec<t> defaultValue, \
-											   string key, \
-											   string description, \
-											   string units);
+											   const char* key, \
+											   const char* description, \
+											   const char* units);
 	BOOST_PP_SEQ_FOR_EACH(BOOST_TT_rep_expression, ~, BOOST_TT_acl_types)
 	#undef BOOST_TT_rep_expression
 
@@ -210,8 +211,7 @@ namespace asl
 	ParametersManager::ParametersManager():
 		parametersOptions("Parameters options"),
 		parametersFileStr("# Parameters file\n"),
-		folder(""),
-		folderWithSlash("")
+		parametersFileDirectory("")
 	{
 		enable();
 	}
@@ -262,40 +262,49 @@ namespace asl
 
 
 	template <typename T> void ParametersManager::add(UValue<T> parameter,
-	                                                  string key,
-	                                                  string description)
+	                                                  const char* key,
+	                                                  const char* description,
+	                                                  const char* units)
 	{
+		string fullDescription = units[0] == '\0' ? description
+								: string(description) + ", [" + units + "]";
 		parametersOptions.add_options()
-			(key.c_str(), value<T>(&parameter.v())->required(), description.c_str());
+			(key, value<T>(&parameter.v())->required(), fullDescription.c_str());
 
 		// Add the parameter to the default parameters file			
-		parametersFileStr += "\n# " + description + "\n" + key + " = \n";
+		parametersFileStr += "\n# " + fullDescription + "\n" + key + " = \n";
 	}
 
 
 	template<typename T> void ParametersManager::add(UValue<map<string, T>> parameter,
-	                                                 string key,
-	                                                 string description)
+	                                                 const char* key,
+	                                                 const char* description,
+	                                                 const char* units)
 	{
+		string fullDescription = units[0] == '\0' ? description
+								: string(description) + ", [" + units + "]";
 		parametersOptions.add_options()
-			(key.c_str(), value<T>()->required(), description.c_str());
+			(key, value<T>()->required(), fullDescription.c_str());
 		// Add the parameter to the default parameters file
-		parametersFileStr += "\n# " + description + "; substite '*' by any suffix to provide a set of related parameters\n"
+		parametersFileStr += "\n# " + fullDescription + "; replace '*' by any suffix to provide a set of related parameters\n"
 							+ key + " = \n";
 	}
 
 
 	template<typename T> void ParametersManager::add(UValue<T> parameter,
 	                                                 T defaultValue,
-	                                                 string key,
-	                                                 string description)
-	{		
+	                                                 const char* key,
+	                                                 const char* description,
+	                                                 const char* units)
+	{
+		string fullDescription = units[0] == '\0' ? description
+								: string(description) + ", [" + units + "]";
 		parametersOptions.add_options()
-			(key.c_str(), value<T>(&parameter.v())->default_value(defaultValue),
-			 description.c_str());
+			(key, value<T>(&parameter.v())->default_value(defaultValue),
+			 fullDescription.c_str());
 
 		// Add the parameter to the default parameters file
-		parametersFileStr += "\n# " + description + "\n"
+		parametersFileStr += "\n# " + fullDescription + "\n"
 							+ key + " = " + numToStr(defaultValue) + "\n";
 	}
 
@@ -340,15 +349,9 @@ namespace asl
 	}
 
 
-	string ParametersManager::getFolder()
+	string ParametersManager::getDir()
 	{
-		return folder;
-	}
-
-
-	string ParametersManager::getFolderWithSlash()
-	{
-		return folderWithSlash;
+		return parametersFileDirectory;
 	}
 	
 
@@ -363,14 +366,12 @@ namespace asl
 	}
 
 
-	ApplicationParametersManager::ApplicationParametersManager(string applicationName_,
-	                                                           string applicationVersion_,
-	                                                           string paramFileName_):
+	ApplicationParametersManager::ApplicationParametersManager(const char* applicationName_,
+	                                                           const char* applicationVersion_):
 		platform(acl::getPlatformVendor(acl::hardware.defaultQueue)),
 		device(acl::getDeviceName(acl::hardware.defaultQueue)),
 		applicationName(applicationName_),
-		applicationVersion(applicationVersion_),
-		paramFileName(paramFileName_)
+		applicationVersion(applicationVersion_)
 	{
 		enable();
 		// Prepend informative header
@@ -381,9 +382,9 @@ namespace asl
 		/* Add platform and device parameters already initialized
 		with their default values */
 		add(platform, platform.v(),
-		    "platform", "Default computation platform");
+		    "platform", "Default computation platform", "");
 		add(device, device.v(),
-		    "device", "Default computation device");
+		    "device", "Default computation device", "");
 	}
 
 
@@ -397,16 +398,15 @@ namespace asl
 			("help,h", "Display this help and exit")
 			("version,v", "Display version and exit")
 			("devices,d", "Display all available devices and exit")
-			("folder,f", value<string>()->default_value("Default"),
-			 string("Path to the working folder that contains parameters file - " + paramFileName).c_str())
-			("parameters,p", value<string>(),
-			 string("Generate default parameters file " + paramFileName + ", write it to the provided path and exit").c_str())
+			("parameters,p", value<string>(), "Path to the parameters file")
+			("generate,g", value<string>(),
+			 "Generate default parameters file and exit")
 			("check,c", "Check parameters for consistency and exit");
 
 		positional_options_description positional;
 
 		options_description allOptions;
-		positional.add("folder", 1);
+		positional.add("parameters", 1);
 
 		allOptions.add(genericOptions).add(parametersOptions);
 
@@ -416,7 +416,7 @@ namespace asl
 
 			if (vm.count("help"))
 			{
-				cout << "Usage: " + applicationName + " [WORKING_FOLDER] [OPTION]...\n"
+				cout << "Usage: " + applicationName + " [PARAMETERS_FILE] [OPTION]...\n"
 					 << allOptions
 					 << endl;
 				exit(0);
@@ -440,16 +440,9 @@ namespace asl
 				exit(0);
 			}
 
-			if (vm.count("parameters"))
+			if (vm.count("generate"))
 			{
-				path p(vm["parameters"].as<string>());
-				// add at least one slash at the end
-				p /= "/";
-				// and then cut all possible slashes at the end
-				p = p.parent_path();
-				p /= "/";
-				p /= paramFileName;
-
+				path p(vm["generate"].as<string>());
 				cout << "Writing default parameters file to: "
 					 << p.string() << endl;
 
@@ -457,23 +450,24 @@ namespace asl
 				exit(0);
 			}
 
-			path p(vm["folder"].as<string>());
-			// add at least one slash at the end
-			p /= "/";
-			// and then cut all possible slashes at the end
-			p = p.parent_path();
-			folder = p.string();
-			p /= "/";
-			folderWithSlash = p.string();
-			p /= paramFileName;
+			path p(vm["parameters"].as<string>());
 			ifstream ifs(p.string());
 			if (!ifs)
 			{
 				// Only warn, since all options might have default values, or required values
-				// provided through the command line - so no parameters file is required
+				// provided through the command line - so not always a parameters file is required
 				warningMessage("ParametersManager::load() - can not open parameters file: " + p.string());
 			}
 
+			// Get absolute path
+			p = absolute(p);
+			// Get directory
+			p = p.parent_path();
+			// Append slash
+			p /= "/";
+			parametersFileDirectory = p.string(); 
+			
+
 			parsed_options parsed = parse_config_file(ifs, allOptions, true);
 			store(parsed, vm);
 			// Run error notification only after obtaining
diff --git a/src/utilities/aslParametersManager.h b/src/utilities/aslParametersManager.h
index 4ac5808..c8fd07e 100644
--- a/src/utilities/aslParametersManager.h
+++ b/src/utilities/aslParametersManager.h
@@ -44,25 +44,25 @@ namespace asl
 			/// parameters file. If no default value is specified, then the
 			/// parameter is required to be specified in the parameters file
 			/// or command line.
-			Parameter(std::string key_,
-			          std::string description_,
-			          std::string units_ = "");
+			Parameter(const char* key_,
+			          const char* description_,
+			          const char* units_ = "");
 			/// \p key is the parameter's identification key in the parameters file
 			/// If a default value is specified, then the parameter is not
 			/// required to be specified in the parameters file or command line.	
 			Parameter(T defaultValue,
-			          std::string key_,
-			          std::string description_,
-			          std::string units_ = "");
+			          const char* key_,
+			          const char* description_,
+			          const char* units_ = "");
 			inline const T & v() const;
 			inline T & v();
 			inline std::shared_ptr<T> p();
 
 		private:
 			UValue<T> parameter;
-			std::string key;
-			std::string description;
-			std::string units;
+			const std::string key;
+			const std::string description;
+			const std::string units;
 	};
 
 
@@ -79,17 +79,20 @@ namespace asl
 			void enable();
 			/// Adds a Parameter to ParametersManager
 			template <typename T> void add(UValue<T> parameter,
-			                               std::string key,
-			                               std::string description);
+			                               const char* key,
+			                               const char* description,
+			                               const char* units);
 			/// Adds a group of parameters with common prefix to ParametersManager
 			template <typename T> void add(UValue<std::map<std::string, T>> parameter,
-			                               std::string key,
-			                               std::string description);
-			/// Adds a Parameter to ParametersManager
+			                               const char* key,
+			                               const char* description,
+			                               const char* units);
+			/// Adds a Parameter with a default value to ParametersManager
 			template <typename T> void add(UValue<T> parameter,
 			                               T defaultValue,
-			                               std::string key,
-			                               std::string description);
+			                               const char* key,
+			                               const char* description,
+			                               const char* units);
 			/// Adds prefix and the pointer on the respective
 			/// Parameter's destinationMap
 			template <typename T>
@@ -98,15 +101,17 @@ namespace asl
 			/// Loads all previously declared parameters
 			/// from parameters file \p paramFile
 			void load(std::string paramFile);
-			std::string getFolder();
-			std::string getFolderWithSlash();
+			/** Get the parameters file directory (absolute, with ending slash).
+			It is convenient to write simulation results output together with
+			its respective parameters file into the same directory (whose name
+			might reflect the specifics of the parameters used) */
+			std::string getDir();
 
 			static ParametersManager * current;
 
 		protected:
 			boost::program_options::options_description parametersOptions;
-			std::string folder;
-			std::string folderWithSlash;
+			std::string parametersFileDirectory;
 			/// Accomodates prefixes (defined by attached "*" wildcard)
 			/// using PrefixStore class
 			std::vector<std::shared_ptr<PrefixStore>> prefixes;
@@ -123,15 +128,14 @@ namespace asl
 	/** This class inherits ParametersManager class and thus also automatically
 	accomodates newly created Parameters and then can load them from
 	a parameters file and/or command line. It silently includes two parameters -
-	`platform` and `device` that determine the hardware application will run on.
+	`platform` and `device` that determine the hardware the application will run on.
 	It has to be declared before declaring all the parameters it will manage!
 	\ingroup Utilities */
 	class ApplicationParametersManager: public ParametersManager
 	{
 		public:
-			ApplicationParametersManager(std::string applicationName_,
-			                             std::string applicationVersion_,
-			                             std::string paramFileName_ = "parameters.ini");
+			ApplicationParametersManager(const char* applicationName_,
+			                             const char* applicationVersion_);
 			
 			/** Loads all previously declared parameters from command line
 			and/or parameters file (provided through command line) */
@@ -142,8 +146,6 @@ namespace asl
 			UValue<std::string> device;
 			std::string applicationName;
 			std::string applicationVersion;
-			std::string paramFileName;
-			
 	};
 
 

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



More information about the debian-science-commits mailing list