Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
combustion1.icc

The combustion problem: class body for the Newton method.

The combustion problem: class body for the Newton method

combustion::combustion (const geo& omega, string approx)
: lambda(0), Xh(), m(), pm(), a1(), pa1(), event("lambda","u") {
if (approx != "") reset (omega, approx);
}
void combustion::reset (const geo& omega, string approx) {
Xh = space (omega, approx);
Xh.block ("boundary");
m = form (Xh, Xh, "mass");
pm = problem (m);
}
field combustion::initial (std::string restart) {
if (restart == "") return field (Xh, 0);
idiststream in (restart);
field xh0;
get (in, xh0);
derr << "# restart from lambda=" << lambda << endl;
return xh0;
}
odiststream& combustion::put (odiststream& os, const field& uh) const {
return os << event(lambda,uh);
}
idiststream& combustion::get (idiststream& is, field& uh) {
is >> event(lambda,uh);
if (!is) return is;
if (Xh.name() == "") reset (uh.get_geo(), uh.get_approx());
if (uh.b().dis_size() == 0) {
// re-allocate the field with right blocked/unblocked sizes
field tmp = field(Xh, 0);
std::copy (uh.begin_dof(), uh.end_dof(), tmp.begin_dof());
uh = tmp;
}
return is;
}
see the field page for the full documentation
see the form page for the full documentation
see the geo page for the full documentation
see the problem page for the full documentation
see the space page for the full documentation
branch event
Definition combustion.h:54
odiststream & put(odiststream &os, const field &uh) const
field initial(std::string restart="")
void reset(const geo &omega, string approx)
combustion(const geo &omega=geo(), string approx="")
idiststream & get(idiststream &is, field &uh)
problem pm
Definition combustion.h:51