38 Sim1D(vector<shared_ptr<Domain1D>>& domains);
54 vector<double>& vals);
64 void setValue(
size_t dom,
size_t comp,
size_t localPoint,
double value);
73 double value(
size_t dom,
size_t comp,
size_t localPoint)
const;
75 double workValue(
size_t dom,
size_t comp,
size_t localPoint)
const;
91 void setProfile(
size_t dom,
size_t comp,
const vector<double>& pos,
92 const vector<double>& values);
108 void show(std::ostream& s);
143 void save(
const string& fname,
const string& name,
const string& desc,
144 bool overwrite=
false,
int compression=0,
const string& basis=
"");
154 void saveResidual(
const string& fname,
const string& name,
155 const string& desc,
bool overwrite=
false,
int compression=0);
173 void setTimeStep(
double stepsize,
size_t n,
const int* tsteps);
175 void solve(
int loglevel = 0,
bool refine_grid =
true);
177 void eval(
double rdt=-1.0,
int count = 1) {
182 void getResidual(
double rdt,
double* resid) {
187 int refine(
int loglevel=0);
204 double slope = 0.8,
double curve = 0.8,
205 double prune = -0.1);
246 void getInitialSoln();
250 void evalSSJacobian();
A map of string keys to values whose type can vary at runtime.
Base class for 'functor' classes that evaluate a function of one variable.
Container class for multiple-domain 1D problems.
void eval(size_t j, double *x, double *r, double rdt=-1.0, int count=1)
Evaluate the multi-domain residual function.
double rdt() const
Reciprocal of the time step.
std::tuple< string, size_t, string > component(size_t i)
Return the domain, local point index, and component name for the i-th component of the global solutio...
shared_ptr< vector< double > > m_state
Solution vector.
One-dimensional simulations.
void restoreTimeSteppingSolution()
Set the current solution vector to the last successful time-stepping solution.
void resize() override
Call after one or more grids has changed size, for example after being refined.
void saveResidual(const string &fname, const string &name, const string &desc, bool overwrite=false, int compression=0)
Save the residual of the current solution to a container file.
vector< double > m_xnew
a work array used to hold the residual or the new solution
void setProfile(size_t dom, size_t comp, const vector< double > &pos, const vector< double > &values)
Specify a profile for one component of one domain.
double fixedTemperatureLocation()
Return location of the point where temperature is fixed.
vector< vector< double > > m_grid_last_ss
the grids for each domain after the last successful steady-state solve (stored before grid refinement...
void finalize()
Calls method _finalize in each domain.
void setValue(size_t dom, size_t comp, size_t localPoint, double value)
Set a single value in the solution vector.
void setSteadyCallback(Func1 *callback)
Set a function that will be called after each successful steady-state solve, before regridding.
int refine(int loglevel=0)
Refine the grid in all domains.
void show()
Show logging information on current solution for all domains.
double fixedTemperature()
Return temperature at the point used to fix the flame location.
vector< double > m_xlast_ss
the solution vector after the last successful steady-state solve (stored before grid refinement)
void setMaxGridPoints(int dom, int npoints)
Set the maximum number of grid points in the domain.
int setFixedTemperature(double t)
Add node for fixed temperature point of freely propagating flame.
void setInitialGuess(const string &component, vector< double > &locs, vector< double > &vals)
Set initial guess for one component for all domains.
int newtonSolve(int loglevel)
Wrapper around the Newton solver.
vector< int > m_steps
array of number of steps to take before re-attempting the steady-state solution
void solveAdjoint(const double *b, double *lambda)
Solve the equation .
AnyMap restore(const string &fname, const string &name)
Retrieve data and settings from a previously saved simulation.
Func1 * m_steady_callback
User-supplied function called after a successful steady-state solve.
void restoreSteadySolution()
Set the current solution vector and grid to the last successful steady- state solution.
size_t maxGridPoints(size_t dom)
Get the maximum number of grid points in this domain.
void setFlatProfile(size_t dom, size_t comp, double v)
Set component 'comp' of domain 'dom' to value 'v' at all points.
double value(size_t dom, size_t comp, size_t localPoint) const
Get one entry in the solution vector.
vector< double > getRefineCriteria(int dom)
Get the grid refinement criteria.
Sim1D()
Default constructor.
void setGridMin(int dom, double gridmin)
Set the minimum grid spacing in the specified domain(s).
void setRefineCriteria(int dom=-1, double ratio=10.0, double slope=0.8, double curve=0.8, double prune=-0.1)
Set grid refinement criteria.
vector< double > m_xlast_ts
the solution vector after the last successful timestepping
void save(const string &fname, const string &name, const string &desc, bool overwrite=false, int compression=0, const string &basis="")
Save current simulation data to a container file or CSV format.
MultiJac & jacobian()
Return a reference to the Jacobian evaluator of an OneDim object.
Namespace for the Cantera kernel.
const size_t npos
index returned by functions to indicate "no position"