FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
TangentialDifferentialEquation.hpp
1#ifndef __FISH_CEPHALUS_TangentialDifferentialEquation_HPP
2#define __FISH_CEPHALUS_TangentialDifferentialEquation_HPP
3
4#include <aerie/AnalyticFunction.hpp>
5#include <ode/dop853def.hpp>
6#include <field/Field.hpp>
7
8namespace Fiber
9{
10
11
13{
14 typedef ::Eagle::tvector3 tvector3;
15
17
18 const Eqn_t*Eqn;
19
20 enum { N = 3 };
21 typedef double real;
22
23 double Time;
24
26 : Eqn(0)
27 , Time(0.0)
28 {}
29
30 struct RealArray_t : Eagle::FixedArray<real, N>
31 {
32 void init(int) {}
33 };
34
35 struct DOPVarsArray_t : Eagle::FixedArray<Traum::dop_vars<real>, N >
36 {
37 void init(int) {}
38 };
39
40 void DiffEqn(int nEquations, real s, const real *q, real *dq_ds) const
41 {
42 Eagle::point3 Q;
43 for(int k=0; k<N; k++)
44 Q[k] = q[k];
45
46 assert( Eqn );
47 tvector3 DataDir = (*Eqn)(Time, Q);
48
49 for(int i=0; i<N; i++)
50 {
51 dq_ds[i] = DataDir[i];
52 }
53 }
54};
55
57
58
71template <class LineIntegratorAnalyticContainer>
73{
74 if (!ToIntegrateField)
75 return false;
76
78 AnalyticField = *ToIntegrateField)
79 {
80 for(typename LineIntegratorAnalyticContainer::iterator
81 it = AnalyticLineIntegrators.begin();
82 it != AnalyticLineIntegrators.end(); it++)
83 {
85 (*it).Eqn = &AF;
86 // note: need to set the time at each integration point in the following code
87 (*it).Time = Time;
88 }
89 return true;
90 }
91 return false;
92}
93
94
95} // namespace Fiber
96
97#endif // __FISH_CEPHALUS_TangentialDifferentialEquation_HPP
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
Given a fragmented field of curvilinear coordinates, (3D array of coordinates), build a uniform Grid ...
Definition FAQ.dox:2
bool setupAnalyticIntegrators(LineIntegratorAnalyticContainer &AnalyticLineIntegrators, const RefPtr< Field > &ToIntegrateField, double Time)
Initialize a container of analytic line integrators with analytic functions as retrieved from a Field...
Definition TangentialDifferentialEquation.hpp:72
Definition TangentialDifferentialEquation.hpp:36
Definition TangentialDifferentialEquation.hpp:31
Definition TangentialDifferentialEquation.hpp:13