Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gradientFlow_RungeKutta_2nd.cpp
Go to the documentation of this file.
1 
15 
16 const std::string GradientFlow_RungeKutta_2nd::class_name = "GradientFlow_RungeKutta_2nd";
17 
18 //====================================================================
19 void GradientFlow_RungeKutta_2nd::flow(double& t, double& Estep, Field_G& U)
20 {
21  //- aliases
22  Field_G& w0 = U;
23  Field_G& w2 = U;
24 
25  Field_G& w1 = m_w1;
26 
27  Field_G& z0 = m_z0;
28  Field_G& z1 = m_z1;
29 
30  //- step 0
31  // calculate gradient of m_action Z_0 (SA)
32  m_action->force(z0, w0);
33 
34  // W_1=e^{c2*Z_0}*U
35  mult_exp_Field_G(w1, 0.5 * Estep, z0, w0, m_Nprec);
36 
37  //- step 1
38  // Z_1
39  m_action->force(z1, w1);
40 
41  // V_out=e^{Z_1}*W_0
42  mult_exp_Field_G(w2, Estep, z1, w0, m_Nprec);
43 
44  t += Estep;
45 }
46 
47 
48 //====================================================================
49 //============================================================END=====
SU(N) gauge field.
Definition: field_G.h:38
virtual void force(Field &)=0
returns force for molcular dynamical update of conjugate momenta.
void mult_exp_Field_G(Field_G &W, const double alpha, const Field_G &iP, const Field_G &U, const int Nprec)
void flow(double &t, double &Estep, Field_G &U)