ASL  0.1.7
Advanced Simulation Library
aslTimeContinuations.h
Go to the documentation of this file.
1 /*
2  * Advanced Simulation Library <http://asl.org.il>
3  *
4  * Copyright 2015 Avtech Scientific <http://avtechscientific.com>
5  *
6  *
7  * This file is part of Advanced Simulation Library (ASL).
8  *
9  * ASL is free software: you can redistribute it and/or modify it
10  * under the terms of the GNU Affero General Public License as
11  * published by the Free Software Foundation, version 3 of the License.
12  *
13  * ASL is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU Affero General Public License for more details.
17  *
18  * You should have received a copy of the GNU Affero General Public License
19  * along with ASL. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 
24 #ifndef ASLTIMECONTINUATIONS_H
25 #define ASLTIMECONTINUATIONS_H
26 
27 #include "aslNumMethod.h"
29 
30 namespace acl
31 {
32  class Kernel;
33 }
34 
35 namespace asl
36 {
37  class VectorTemplate;
38  template <typename V> class DataWithGhostNodes;
39  typedef DataWithGhostNodes<acl::VectorOfElementsData> DataWithGhostNodesACLData;
40  typedef std::shared_ptr<DataWithGhostNodesACLData> SPDataWithGhostNodesACLData;
41  class AbstractDataWithGhostNodes;
42  typedef std::shared_ptr<AbstractDataWithGhostNodes> SPAbstractDataWithGhostNodes;
43 
45 
50  {
51  public:
53  protected:
55  double factor;
56  unsigned int nStorages;
57  TimeContinuations(Data inD, double factor);
59  public:
60  void addData(Data inD);
62  virtual void execute()=0;
63  virtual void init()=0;
65  void reset();
66  };
67 
68 
70 
81  {
82  private:
83  acl::VectorOfElements storedData;
84  std::vector<std::shared_ptr<acl::Kernel>> kernels;
85  unsigned int order;
86  std::vector<double> coefs;
87 
88  public:
89  TimeContinPLagrange(Data inD, double f, unsigned int order);
90  TimeContinPLagrange(acl::VectorOfElementsData & inD, double f, unsigned int order);
91  virtual void execute();
92  virtual void init();
93  };
94 
95  typedef std::shared_ptr<TimeContinPLagrange> SPTimeContinPLagrange;
96 
98 
115  {
116  public:
119  private:
120  acl::VectorOfElements storedData;
121  std::vector<std::shared_ptr<acl::Kernel>> kernels;
122  unsigned int order;
123  double offset;
124  std::vector<double> coefs;
125 
126  public:
127  TimeContinPLagrangeFraction(Data inD, double f, unsigned int order);
129  double f, unsigned int order);
130  void execute();
131  virtual void init();
132  };
133 
134  typedef std::shared_ptr<TimeContinPLagrangeFraction> SPTimeContinPLagrangeFraction;
135 
136 
137 } // asl
138 #endif // ASLTIMECONTINUATIONS_H
TimeContinPLagrange(Data inD, double f, unsigned int order)
TimeContinPLagrangeFraction(Data inD, double f, unsigned int order)
Advanced Simulation Library.
Definition: aslDataInc.h:30
Advanced Computational Language.
Definition: acl.h:40
Numerical method that generates temporal extrapolation of the data with Lagrangian polynoms of fracti...
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
acl::VectorOfElementsData inData
virtual void execute()=0
Executes the numerical procedure.
The class represents several ElementData.
Numerical method that generates temporal extrapolation of the data, Abstract class.
DataWithGhostNodes< acl::VectorOfElementsData > DataWithGhostNodesACLData
Definition: aslGenerators.h:45
SPDataWithGhostNodesACLData Data
std::shared_ptr< TimeContinPLagrangeFraction > SPTimeContinPLagrangeFraction
virtual void init()=0
Builds the necesery internal data and kernels.
SPDataWithGhostNodesACLData Data
virtual void execute()
Executes the numerical procedure.
The class represents several Element.
void reset()
makes reset of the contiuation (storage) cicle
virtual void init()
Builds the necesery internal data and kernels.
void addData(Data inD)
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
Numerical method that generates temporal extrapolation of the data with Lagrangian polynoms.
void execute()
Executes the numerical procedure.
std::shared_ptr< TimeContinPLagrange > SPTimeContinPLagrange
TimeContinuations(Data inD, double factor)
virtual void init()
Builds the necesery internal data and kernels.
SPAbstractDataWithGhostNodes Field