IFEM  90A354
ISolver.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _I_SOLVER_H_
15 #define _I_SOLVER_H_
16 
17 class ProcessAdm;
18 class TimeStep;
19 
20 
26 class ISolver
27 {
28 public:
30  virtual const ProcessAdm& getProcessAdm() const = 0;
31 
36  virtual bool saveModel(char* fileName, int& geoBlk, int& nBlock) = 0;
37 
41  virtual bool saveStep(const TimeStep& tp, int& nBlock) = 0;
42 
44  virtual bool init(const TimeStep& tp) = 0;
45 
47  virtual bool advanceStep(TimeStep& tp) = 0;
48 
50  virtual bool solveStep(TimeStep& tp) = 0;
51 
53  virtual void registerFields(DataExporter& exporter) = 0;
54 
56  virtual void setInitialConditions() = 0;
57 
59  virtual void setupDependencies() = 0;
60 };
61 
62 #endif
Administer and write data using DataWriters.
Definition: DataExporter.h:38
Abstract solver interface.
Definition: ISolver.h:27
virtual void setInitialConditions()=0
Sets initial conditions for the solution field.
virtual bool saveModel(char *fileName, int &geoBlk, int &nBlock)=0
Opens a new VTF-file and writes the model geometry to it.
virtual bool saveStep(const TimeStep &tp, int &nBlock)=0
Saves the converged results of a given time step to VTF file.
virtual void registerFields(DataExporter &exporter)=0
Registers fields for output to a data exporter.
virtual bool solveStep(TimeStep &tp)=0
Computes the solution for the current time step.
virtual void setupDependencies()=0
Initializes and sets up field dependencies.
virtual bool init(const TimeStep &tp)=0
Initializes the simulator time stepping loop.
virtual const ProcessAdm & getProcessAdm() const =0
Returns the parallel process administrator.
virtual bool advanceStep(TimeStep &tp)=0
Advances the time step one step forward.
Class for administration of MPI processes in IFEM library.
Definition: ProcessAdm.h:33
Class for encapsulation of general time stepping parameters.
Definition: TimeStep.h:31