Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

SmoluchowskiSolver Class Reference

#include <solver.hpp>

Collaboration diagram for SmoluchowskiSolver:

Collaboration graph
[legend]
List of all members.

Detailed Description

Main Smoluchowski Solver class.

Class containes method to solve forward linear and nonlinear problems, linear adjoint and inverse problems of source function reconstruction.

Note:
object of this class needeed only for solve inverse problem

Definition at line 200 of file solver.hpp.

Public Member Functions

 SmoluchowskiSolver (SmoluchowskiLinearOperator &_A)
 Initialize solver of source function reconstruction problem by SmoluchowskiLinearOperator.
 ~SmoluchowskiSolver ()
 The destructor.
const double * Get_s () const
 Get s(x) for details see description of SmoluchowskiLinearOperator.
unsigned GetN () const
 Get size of uniform grid of particles.
void inverse_problem (SourceFunction &v, const double *g_obs, double alpha, double dzeta, StopCriteria &stopcriteria, Callback *callback=0)
 Solve inverse problem of source function reconstruction.

Static Public Member Functions

static void forward_problem (SmoluchowskiOperator &A, double T, unsigned M, const RightSide &rightside, double *res)
 Solve linear or nonlinear forward smoluchowski problem.
static void adjoint_problem (SmoluchowskiLinearOperator &A, double T, unsigned M, double *res)
 Solve linear adjoint smoluchowski problem.

Classes

class  Callback
 Class of callback which can be used in inverse problem TODO: add callback to forward and adjoint problems. More...
class  RightSide
 Abstract class of rightside which can be used in smoluchowki problems TODO: remove this class. More...


Constructor & Destructor Documentation

SmoluchowskiSolver::SmoluchowskiSolver SmoluchowskiLinearOperator _A  ) 
 

Initialize solver of source function reconstruction problem by SmoluchowskiLinearOperator.

Definition at line 307 of file solver.cpp.

References SmoluchowskiCalc::GetN(), and SmoluchowskiOperator::GetSmolCalc().

SmoluchowskiSolver::~SmoluchowskiSolver  ) 
 

The destructor.

Definition at line 315 of file solver.cpp.


Member Function Documentation

const double * SmoluchowskiSolver::Get_s  )  const
 

Get s(x) for details see description of SmoluchowskiLinearOperator.

Definition at line 337 of file solver.cpp.

unsigned SmoluchowskiSolver::GetN  )  const
 

Get size of uniform grid of particles.

Definition at line 342 of file solver.cpp.

References SmoluchowskiCalc::GetN(), and SmoluchowskiOperator::GetSmolCalc().

void SmoluchowskiSolver::inverse_problem SourceFunction v,
const double *  g_obs,
double  alpha,
double  dzeta,
StopCriteria stopcriteria,
Callback callback = 0
 

Solve inverse problem of source function reconstruction.

Parameters:
v initial value of source function
g_obs vector of size N+1 of values difference between concentration of particles in start and end moments of time
alpha regularization parameter (must be nonnegative)
stopcriteria object of used stop criteria
dzeta parameter of gradient method minimization of functional J_{alpha}(v) (for details see description of StopCriteria class)
callback optional parameter to use information saved in stopcriteria object
Returns:
v found reconstuction of source function

Definition at line 347 of file solver.cpp.

References adjoint_problem(), forward_problem(), SmoluchowskiOperator::Get_h(), and SmoluchowskiCalc::GetN().

void SmoluchowskiSolver::forward_problem SmoluchowskiOperator A,
double  T,
unsigned  M,
const RightSide rightside,
double *  res
[static]
 

Solve linear or nonlinear forward smoluchowski problem.

Let A be a linear or nonlinear smoluchowski operator. Method solve equation dg/dt + Ag = rightside with known g(t=0) by Euler method.

Parameters:
A smoluchowski operator (linear or nonlinear)
T end time moment
M size of uniform grid on [0;T]
rightside right side of equation above
res vector of size (N+1)x(M+1) contains initial values of g: g(i * h, 0) = res[i]
Returns:
res vector of size (N+1)x(M+1) contains values of g on grid [0;H]x[0;T]: res[(N + 1) * k + i] = g(i * h, k * tau).

Definition at line 272 of file solver.cpp.

References SmoluchowskiLinearOperator::Apply(), SmoluchowskiCalc::GetN(), and SmoluchowskiOperator::GetSmolCalc().

Referenced by inverse_problem().

void SmoluchowskiSolver::adjoint_problem SmoluchowskiLinearOperator A,
double  T,
unsigned  M,
double *  res
[static]
 

Solve linear adjoint smoluchowski problem.

Let A be a linear operator. Method solve equation -dq/dt + A^{*}q = 0, with known g(t=T) by Euler method.

Parameters:
A linear smoluchowski operator
T end time moment
M size of uniform grid on [0;T]
res vector of size (N+1)x(M+1) contains known g(t=T): g(i * h, T) = res[(N+1) * M + i]
Returns:
res vector of size (N+1)x(M+1) contains values of g on grid [0;H]x[0;T]: res[(N + 1) * k + i] = g(i * h, k * tau).

Definition at line 291 of file solver.cpp.

References SmoluchowskiLinearOperator::ApplyAdjoint(), SmoluchowskiCalc::GetN(), and SmoluchowskiOperator::GetSmolCalc().

Referenced by inverse_problem().


The documentation for this class was generated from the following files:
Generated on Sun May 25 01:58:13 2025 for SmoluchowskiSolver by Doxygen