47 pb = ceps::getNew<LaplacianProblem>(g,p);
48 else if (s ==
ceps::toKey(
"dirichlet anode cathode"))
49 pb = ceps::getNew<DirichletAnodeCathodeProblem>(g,p);
51 pb = ceps::getNew<FluxAnodeCathodeProblem>(g,p);
53 pb = ceps::getNew<HeatProblem>(g,p);
55 pb = ceps::getNew<MonodomainProblem>(g,p);
57 pb = ceps::getNew<CLMonodomainProblem>(g,p);
59 pb = ceps::getNew<BidomainProblem>(g,p);
61 pb = ceps::getNew<ExtendedBidomainProblem>(g,p);
63 pb = ceps::getNew<BilayerMonodomainProblem>(g,p);
65 pb = ceps::getNew<PacemakerBidomainProblem>(g,p);
67 pb = ceps::getNew<PacemakerPoissonProblem>(g,p);
70 "Unknown type of problem " << s <<
"\n" <<
102 +
"rm " + newFile +
" 2>/dev/null && "
103 +
"cp -f " + argv[optind] +
" " + newFile;
104 system(cpCommand.c_str());
109 if (p.
hasKey(
"convergence 3d meshes")
110 or p.
hasKey(
"convergence 2d meshes")
111 or p.
hasKey(
"convergence 1d meshes"))
constexpr const char * validProblems
#define CEPS_ABORT(message)
Stops the execution with a message. If testing is enabled, only throws a runtime_error.
#define CEPS_SAYS(message)
Writes a message in the debug log and in the terminal (stdio).
#define CEPS_SEPARATOR
Writes a separator in the debug log and in the terminal.
std::basic_string< CepsChar > CepsString
C++ format string.
Flags * flags
Global variable, used in every application.
void doSingleRun(InputParameters *p, Geometry *g)
Runs a single simulation Problem type deduced from input string in InputParameters.
int main(int argc, CepsChar *argv[])
Base class for creating PDEs to solve.
virtual void run()
Computes the solution to the problem. Default does nothing, override it !
Management of run options.
void printHelp(CepsChar **argv)
Display info on how to type in command line.
Encapsulates all the geometrical data.
CepsString getDir(const CepsString &str)
Get a substring of s, from beginning of s to the last '/' character. Example: "/home/someone/file....
CepsString getFilename(const CepsString &str)
Returns a substring corresponding to the string after the last '/' character. Example: "/home/someone...
CepsString toKey(const CepsString &s)
Transform to key type a std::string, upper case and no spaces.
CepsUInt initialize(int argc, char *argv[])
Initializes parallel environment.
CepsBool isMaster()
Is calling process the master ?
void destroyObject(_Type &)
Destroy[delete] any type.
void doConvergence(InputParameters *p)
Runs a convergence analysis Problem type deduced from input string in InputParameters.