Commit 7d472011 authored by Naumann, Andreas's avatar Naumann, Andreas

first tests data production, need to change data for speedup

parent 613caf74
project(tests)
add_subdirectory(datacreation)
add_subdirectory(datacreation EXCLUDE_FROM_ALL)
project(testdatacreation)
message("source-dir: ${AMDiS_SOURCE_DIR}")
include_directories(${AMDiS_SOURCE_DIR})
file(GLOB PROJECTFILES src/*Project.cpp)
set(CREATELINE "")
foreach(projectfile ${PROJECTFILES})
#create creatorname
get_filename_component(CppName ${projectfile}, NAME_WE)
get_filename_component(CppName ${projectfile} NAME_WE)
string(REPLACE "Project" "" creatorsuffix ${CppName})
set(PROJECTINCLUDE "${CppName}.h")
set(CURRENTPROJECTTYPE "${creatorsuffix}demo")
string(TOLOWER "${creatorsuffix}" creatorsuffix_lower)
set(BASENAME "${creatorsuffix_lower}")
configure_file(src/creator_base.cpp src/creator${creatorsuffix}.cpp @ONLY)
add_executable(creator${creatorsuffix} src/creator${creatorsuffix}.cpp src/ProjectList.cpp ${projectfile})
target_link_libraries(creator${creatorsuffix} ${AMDiS_LIBS})
target_link_libraries(creator${creatorsuffix} ${AMDiS_LIBS} boost_filesystem)
file(GLOB initfiles RELATIVE ${CMAKE_CURRENT_BINARY_DIR} init/${creatorsuffix_lower}*.dat*)
foreach(initfile ${initfiles})
get_filename_component(initfile_ext ${initfile} EXT)
string(REPLACE ".dat." "" initfile_ext "${initfile_ext}")
set(curoutputdatafile "../testdata/${creatorsuffix_lower}_${initfile_ext}.arh")
set(CREATELINE "${CREATELINE}./creator${creatorsuffix} ${initfile} ${curoutputdatafile}\n")
endforeach(initfile)
endforeach(projectfile)
configure_file(create_base.sh create.sh)
../testdata/init
\ No newline at end of file
../testdata/macro
\ No newline at end of file
......@@ -28,7 +28,7 @@ public:
}
};
BallDemo::BallDemo():
Balldemo::Balldemo():
ball("ball"),
ballCenter(NULL),
adaptInfo(NULL),
......@@ -38,7 +38,7 @@ BallDemo::BallDemo():
{
}
BallDemo::~BallDemo() {
Balldemo::~Balldemo() {
if(matrixOperator != NULL)
delete matrixOperator;
if(rhsOperator != NULL)
......@@ -51,7 +51,7 @@ BallDemo::~BallDemo() {
delete adaptInfo;
}
void BallDemo::create(std::string& filename) {
void Balldemo::create(std::string& filename) {
// ===== init parameters =====
Parameters::init(false, filename);
ballCenter = new WorldVector< double >();
......@@ -89,7 +89,7 @@ void BallDemo::create(std::string& filename) {
}
int BallDemo::solve(SolutionInformation& solinfo) {
int Balldemo::solve(SolutionInformation& solinfo) {
assert(adaptInfo!=NULL);
assert(adapt!=NULL);
assert(matrixOperator!=NULL);
......@@ -99,13 +99,14 @@ int BallDemo::solve(SolutionInformation& solinfo) {
solinfo.dofVec = ball.getSolution();
return retCode;
}
/*
void createProjectList(ProjectList& list) {
list.clear();
Project* demo = new BallDemo();
Project* demo = new Balldemo();
ProjectInfo ballInfo(demo, "init/ball.dat.2d", "../testdata/balldata_2d");
list.push_back(ballInfo);
ballInfo = ProjectInfo(demo, "init/ball.dat.3d", "../testdata/balldata_3d");
list.push_back(ballInfo);
}
*/
......@@ -7,7 +7,7 @@
using namespace AMDiS;
class BallDemo : public Project {
class Balldemo : public Project {
ProblemScal ball;
WorldVector< double >* ballCenter;
AdaptInfo* adaptInfo;
......@@ -15,8 +15,8 @@ class BallDemo : public Project {
Operator* matrixOperator;
Operator* rhsOperator;
public:
BallDemo() ;
~BallDemo() ;
Balldemo() ;
~Balldemo() ;
void create(std::string& ) ;
int solve(SolutionInformation&);
......
......@@ -48,7 +48,7 @@ Bunnydemo::~Bunnydemo() {
delete rhsOperator;
}
void Bunnydemo::create(string filename) {
void Bunnydemo::create(string& filename) {
// ===== init parameters =====
Parameters::init(false, filename);
......@@ -87,5 +87,3 @@ int Bunnydemo::solve(SolutionInformation& info) {
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -17,7 +17,7 @@ class Bunnydemo : public Project {
Bunnydemo();
~Bunnydemo();
void create(string filename);
void create(string& filename);
int solve(SolutionInformation&);
};
#endif
......@@ -48,7 +48,7 @@ Elliptdemo::~Elliptdemo() {
delete adaptInfo;
}
void Elliptdemo::create(std::string filename) {
void Elliptdemo::create(std::string& filename) {
// ===== init parameters =====
Parameters::init(true, filename);
......@@ -90,5 +90,3 @@ int Elliptdemo::solve(SolutionInformation& info) {
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -15,7 +15,7 @@ class Elliptdemo : public Project {
Elliptdemo();
~Elliptdemo();
void create(std::string filename);
void create(std::string& filename);
int solve(SolutionInformation& info);
};
#endif
......@@ -56,7 +56,7 @@ Heatdemo::~Heatdemo() {
delete Fop;
}
void Heatdemo::create(string filename) {
void Heatdemo::create(string& filename) {
// ===== init parameters =====
Parameters::init(false, filename);
// Parameters::readArgv(argc, argv);
......@@ -127,6 +127,3 @@ int Heatdemo::solve(SolutionInformation& info) {
info.dofVec = heatSpace.getSolution();
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -21,7 +21,7 @@ class Heatdemo : public Project {
Heatdemo();
~Heatdemo();
void create(string filename);
void create(string& filename);
int solve(SolutionInformation& info);
};
......
......@@ -57,7 +57,7 @@ Neumanndemo::~Neumanndemo() {
delete adaptInfo;
}
void Neumanndemo::create(string filename) {
void Neumanndemo::create(string& filename) {
// ===== init parameters =====
Parameters::init(true, filename);
......@@ -94,6 +94,3 @@ int Neumanndemo::solve(SolutionInformation& info) {
info.dofVec = neumann.getSolution();
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -14,7 +14,7 @@ class Neumanndemo : public Project {
Neumanndemo();
~Neumanndemo();
void create(string filename);
void create(string& filename);
int solve(SolutionInformation&);
};
#endif
......@@ -32,7 +32,7 @@ Parametricdemo::~Parametricdemo() {
delete adaptInfo;
}
void Parametricdemo::create(string filename) {
void Parametricdemo::create(string& filename) {
// ===== init parameters =====
Parameters::init(false, filename);
......@@ -67,6 +67,3 @@ int Parametricdemo::solve(SolutionInformation& info) {
info.dofVec = parametric.getSolution();
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -16,7 +16,7 @@ class Parametricdemo : public Project {
Parametricdemo();
~Parametricdemo();
void create(string filename);
void create(string& filename);
int solve(SolutionInformation&);
};
......
......@@ -46,7 +46,7 @@ Periodicdemo::~Periodicdemo() {
delete adaptInfo;
}
void Periodicdemo::create(string filename) {
void Periodicdemo::create(string& filename) {
// ===== init parameters =====
Parameters::init(false, filename);
......@@ -85,6 +85,3 @@ int Periodicdemo::solve(SolutionInformation& info) {
info.dofVec = periodic.getSolution();
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -14,7 +14,7 @@ class Periodicdemo : public Project {
Periodicdemo();
~Periodicdemo();
void create(string filename);
void create(string& filename);
int solve(SolutionInformation&);
};
#endif
......@@ -58,6 +58,4 @@ class ProjectInfo {
}
};
typedef list< ProjectInfo > ProjectList;
void createProjectList(ProjectList& );
#endif
#include "Project.h"
#include "BallProject.h"
#include "io/ArhWriter.h"
#include "io/ArhReader.h"
#include <vector>
......
......@@ -36,7 +36,7 @@ Spheredemo::~Spheredemo() {
delete adaptInfo;
}
void Spheredemo::create(string filename) {
void Spheredemo::create(string& filename) {
// ===== init parameters =====
Parameters::init(false, filename);
......@@ -76,6 +76,3 @@ int Spheredemo::solve(SolutionInformation& info) {
info.dofVec = sphere.getSolution();
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -17,7 +17,7 @@ class Spheredemo : public Project {
Spheredemo();
~Spheredemo();
void create(string filename);
void create(string& filename);
int solve(SolutionInformation& );
};
#endif
......@@ -53,10 +53,9 @@ Vecelliptdemo::~Vecelliptdemo() {
delete adaptInfo;
}
void Vecelliptdemo::create(string filename) {
void Vecelliptdemo::create(string& filename) {
// ===== init parameters =====
Parameters::init(false, filename);
Parameters::init(true, filename);
// ===== create and init the scalar problem =====
vecellipt.initialize(INIT_ALL);
......@@ -100,6 +99,3 @@ int Vecelliptdemo::solve(SolutionInformation& info) {
info.sysVec = vecellipt.getSolution();
return retCode;
}
void createProjectList(ProjectList& list) {
}
......@@ -17,7 +17,7 @@ class Vecelliptdemo : public Project {
Vecelliptdemo();
~Vecelliptdemo();
void create(string filename);
void create(string& filename);
int solve(SolutionInformation& );
};
......
#include "Parameters.h"
#include "Project.h"
#include "@PROJECTINCLUDE@"
typedef @CURRENTPROJECTTYPE@ ProjectType;
std::string basename="@BASENAME@";
int main(int argc, char** argv) {
ProjectList list;
createProjectList(list);
for(ProjectList::iterator it=list.begin() ; it != list.end(); ++it) {
it->create();
SolutionInformation info;
it->solve(info);
write(info, it->getFilename());
if(argc < 2) {
std::cout<<" need initfile "<<basename<<"*\n";
return 1;
}
if(argc < 3) {
std::cout<<" also need a destination file "<<basename<<"*\n";
return 2;
}
std::string initfile(argv[1]);
std::string destinationfile(argv[2]);
AMDiS::Parameters::init(false, initfile);
ProjectType project;
ProjectInfo info(&project, initfile, destinationfile);
info.create();
SolutionInformation solinfo;
info.solve(solinfo);
write(solinfo, info.getFilename());
return 0;
}
dimension of world: 1
periodicMesh->macro file name: ./macro/periodic.macro.1d
periodicMesh->global refinements: 0
periodicMesh->periodic file: ./init/periodic.per.1d
periodicMesh->preserve coarse dofs: 0
periodic->mesh: periodicMesh
periodic->dim: 1
periodic->polynomial degree: 1
periodic->solver: cg
periodic->solver->max iteration: 1000
periodic->solver->tolerance: 1.e-8
periodic->solver->info: 2
periodic->solver->left precon: diag
periodic->solver->right precon: no
periodic->estimator: residual
periodic->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
periodic->estimator->C0: 0.1 % constant of element residual
periodic->estimator->C1: 0.0 % constant of jump residual
periodic->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
periodic->marker->MSGamma: 0.5
periodic->adapt->tolerance: 1e-6
periodic->adapt->max iteration: 14
periodic->adapt->refine bisections: 2
periodic->adapt->coarsen allowed: 0
periodic->output->filename: periodic
periodic->output->ParaView format: 1
periodic->output->TecPlot format: 0
periodic->output->TecPlot ext: .tec
periodic->output->AMDiS format: 0
periodic->output->AMDiS mesh ext: .mesh
periodic->output->AMDiS data ext: .dat
periodic->output->append index: 0
periodic->output->index length: 6
periodic->output->index decimals: 3
WAIT: 1
dimension of world: 2
ballMesh->macro file name: ./macro/macro.ball.2d
ballMesh->global refinements: 3
ball->mesh: ballMesh
ball->dim: 2
ball->polynomial degree: 1
ball->solver: cg
ball->solver->max iteration: 1000
ball->solver->tolerance: 1.e-8
ball->solver->info: 2
ball->solver->left precon: diag
ball->solver->right precon: no
ball->estimator: residual % residual, recovery
ball->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
ball->estimator->C1: 0.1 % constant of jump residual
ball->marker->strategy: 0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ball->marker->MSGamma: 0.5
ball->adapt->tolerance: 1e-8
ball->adapt->max iteration: 4
ball->adapt->info: 8
ball->output->filename: ball
ball->output->ParaView format: 1
ball->output->TecPlot format: 0
ball->output->TecPlot ext: .tec
ball->output->AMDiS format: 0
ball->output->AMDiS mesh ext: .mesh
ball->output->AMDiS data ext: .dat
ball->output->append index: 0
ball->output->index length: 6
ball->output->index decimals: 3
WAIT: 1
dimension of world: 3
ballMesh->macro file name: ./macro/macro.ball.3d
ballMesh->global refinements: 15
ball->mesh: ballMesh
ball->dim: 3
ball->polynomial degree: 1
ball->solver: cg
ball->solver->max iteration: 1000
ball->solver->tolerance: 1.e-8
ball->solver->left precon: diag
ball->estimator: 0
ball->marker->strategy: 0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ball->output->filename: output/ball
ball->output->ParaView format: 1
ball->output->AMDiS format: 0
ball->output->AMDiS mesh ext: .mesh
ball->output->AMDiS data ext: .dat
dimension of world: 3
bunnyMesh->macro file name: ./macro/bunny_fixed.macro
bunnyMesh->check: 0
bunnyMesh->global refinements: 0
bunny->mesh: bunnyMesh
bunny->dim: 2
bunny->polynomial degree: 1
bunny->solver: cg
bunny->solver->max iteration: 100
bunny->solver->tolerance: 1.e-8
bunny->solver->info: 5
bunny->solver->left precon: diag
bunny->solver->right precon: no
bunny->estimator: residual % residual, recovery
bunny->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
bunny->estimator->C1: 0.1 % constant of jump residual
bunny->marker->strategy: 0 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
bunny->marker->MSGamma: 0.5
bunny->adapt->tolerance: 1e-8
bunny->adapt->refine bisections: 1
bunny->adapt->max iteration: 0
bunny->adapt->info: 8
bunny->output->filename: bunny_fixed
bunny->output->ParaView format: 1
bunny->output->TecPlot format: 0
bunny->output->TecPlot ext: .tec
bunny->output->AMDiS format: 0
bunny->output->AMDiS mesh ext: .mesh
bunny->output->AMDiS data ext: .dat
bunny->output->append index: 0
bunny->output->index length: 6
bunny->output->index decimals: 3
WAIT: 1
dimension of world: 2
couple->adapt->tolerance: 1e-8
couple->adapt->max iteration: 10
couple->adapt->refine bisections: 2
coupleMesh->macro file name: ./macro/macro.stand.2d
coupleMesh->global refinements: 0
problem1->mesh: coupleMesh
problem1->dim: 2
problem1->polynomial degree: 1
problem1->solver: cg
problem1->solver->max iteration: 1000
problem1->solver->tolerance: 1.e-8
problem1->solver->left precon: diag
problem1->estimator: residual
problem1->estimator->C0: 0.1 % constant of element residual
problem1->estimator->C1: 0.1 % constant of jump residual
problem1->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
problem1->marker->MSGamma: 0.5
problem1->output->filename: output/problem1
problem1->output->ParaView format: 1
problem1->output->AMDiS format: 0
problem1->output->AMDiS mesh ext: .mesh
problem1->output->AMDiS data ext: .dat
problem2->dim: 2
problem2->polynomial degree: 1
problem2->solver: cg
problem2->solver->max iteration: 1000
problem2->solver->tolerance: 1.e-8
problem2->solver->left precon: diag
problem2->estimator: 0
problem2->marker->strategy: 0
problem2->output->filename: output/problem2
problem2->output->ParaView format: 1
problem2->output->AMDiS format: 0
problem2->output->AMDiS mesh ext: .mesh
problem2->output->AMDiS data ext: .dat
dimension of world: 1
elliptMesh->macro file name: ./macro/macro.stand.1d
elliptMesh->global refinements: 3
ellipt->mesh: elliptMesh
ellipt->dim: 1
ellipt->polynomial degree: 1
ellipt->solver: cg
ellipt->solver->max iteration: 1000
ellipt->solver->tolerance: 1.e-8
ellipt->solver->info: 2
ellipt->solver->left precon: diag
ellipt->solver->right precon: no
ellipt->estimator: residual
ellipt->estimator->error norm: 1 % 1: H1_NORM, 2: L2_NORM
ellipt->estimator->C0: 0.1 % constant of element residual
ellipt->estimator->C1: 0.1 % constant of jump residual
ellipt->adapt->tolerance: 1e-4
ellipt->adapt->max iteration: 10
ellipt->adapt->info: 8
ellipt->adapt->refine bisections: 1
ellipt->marker->strategy: 2 % 0: no adaption 1: GR 2: MS 3: ES 4:GERS
ellipt->marker->MSGamma: 0.5
ellipt->marker->info: 8
ellipt->output->filename: ellipt
ellipt->output->ParaView format: 1
ellipt->output->TecPlot format: 0