38 Sim1D(std::vector<Domain1D*>& domains);
66 void setValue(
size_t dom,
size_t comp,
size_t localPoint, doublereal
value);
75 doublereal
value(
size_t dom,
size_t comp,
size_t localPoint)
const;
77 doublereal workValue(
size_t dom,
size_t comp,
size_t localPoint)
const;
101 void save(
const std::string& fname,
const std::string&
id,
102 const std::string& desc,
int loglevel=1);
104 void saveResidual(
const std::string& fname,
const std::string&
id,
105 const std::string& desc,
int loglevel=1);
108 void showSolution(std::ostream& s);
111 const doublereal* solution() {
115 void setTimeStep(
double stepsize,
size_t n,
const int* tsteps);
117 void solve(
int loglevel = 0,
bool refine_grid =
true);
119 void eval(doublereal
rdt=-1.0,
int count = 1) {
124 void getResidual(
double rdt,
double* resid) {
129 int refine(
int loglevel=0);
140 doublereal slope = 0.8, doublereal curve = 0.8, doublereal prune = -0.1);
172 void restore(
const std::string& fname,
const std::string&
id,
int loglevel=2);
184 void getInitialSoln();
186 void setSolution(
const doublereal* soln) {
187 std::copy(soln, soln +
m_x.size(),
m_x.data());
190 const doublereal* solution()
const {
196 void evalSSJacobian();
Container class for multiple-domain 1D problems.
std::vector< vector_fp > m_grid_last_ss
the grids for each domain after the last successful steady-state solve (stored before grid refinement...
size_t maxGridPoints(size_t dom)
Get the maximum number of grid points in this domain.
void restore(const std::string &fname, const std::string &id, int loglevel=2)
Initialize the solution with a previously-saved solution.
vector_fp m_x
the solution vector
vector_fp m_xlast_ts
the solution vector after the last successful timestepping
void eval(size_t j, double *x, double *r, doublereal rdt=-1.0, int count=1)
Evaluate the multi-domain residual function.
vector_fp m_xlast_ss
the solution vector after the last successful steady-state solve (stored before grid refinement) ...
MultiJac & jacobian()
Return a reference to the Jacobian evaluator.
const size_t npos
index returned by functions to indicate "no position"
void setValue(size_t dom, size_t comp, size_t localPoint, doublereal value)
Set a single value in the solution vector.
void setRefineCriteria(int dom=-1, doublereal ratio=10.0, doublereal slope=0.8, doublereal curve=0.8, doublereal prune=-0.1)
Set grid refinement criteria.
void setInitialGuess(const std::string &component, vector_fp &locs, vector_fp &vals)
Set initial guess for one component for all domains.
void solveAdjoint(const double *b, double *lambda)
Solve the equation .
vector_fp getRefineCriteria(int dom)
Get the grid refinement criteria.
vector_int m_steps
array of number of steps to take before re-attempting the steady-state solution
int newtonSolve(int loglevel)
Wrapper around the Newton solver.
std::vector< int > vector_int
Vector of ints.
int setFixedTemperature(doublereal t)
Add node for fixed temperature point of freely propagating flame.
One-dimensional simulations.
void finalize()
Calls method _finalize in each domain.
void restoreTimeSteppingSolution()
Set the current solution vector to the last successful time-stepping solution.
void setSteadyCallback(Func1 *callback)
Set a function that will be called after each successful steady-state solve, before regridding...
virtual void resize()
Call after one or more grids has changed size, e.g. after being refined.
std::tuple< std::string, size_t, std::string > component(size_t i)
Return the domain, local point index, and component name for the i-th component of the global solutio...
Func1 * m_steady_callback
User-supplied function called after a successful steady-state solve.
Base class for 'functor' classes that evaluate a function of one variable.
doublereal m_tstep
timestep
void setFlatProfile(size_t dom, size_t comp, doublereal v)
Set component 'comp' of domain 'dom' to value 'v' at all points.
Sim1D()
Default constructor.
vector_fp m_xnew
a work array used to hold the residual or the new solution
doublereal value(size_t dom, size_t comp, size_t localPoint) const
Get one entry in the solution vector.
std::vector< double > vector_fp
Turn on the use of stl vectors for the basic array type within cantera Vector of doubles.
int refine(int loglevel=0)
Refine the grid in all domains.
void restoreSteadySolution()
Set the current solution vector and grid to the last successful steady- state solution.
void setProfile(size_t dom, size_t comp, const vector_fp &pos, const vector_fp &values)
Specify a profile for one component of one domain.
doublereal rdt() const
Reciprocal of the time step.
void setMaxGridPoints(int dom, int npoints)
Set the maximum number of grid points in the domain.
Namespace for the Cantera kernel.
void setGridMin(int dom, double gridmin)
Set the minimum grid spacing in the specified domain(s).