Bridge++
Ver. 1.1.x
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
action_F_Rational_Frame.cpp
Go to the documentation of this file.
1
14
#include "
action_F_Rational_Frame.h
"
15
16
#ifdef USE_PARAMETERS_FACTORY
17
#include "
parameters_factory.h
"
18
#endif
19
20
//- parameter entries
21
namespace
{
22
void
append_entry(
Parameters
& param)
23
{
24
param.
Register_string
(
"verbose_level"
,
"NULL"
);
25
}
26
27
28
#ifdef USE_PARAMETERS_FACTORY
29
bool
init_param =
ParametersFactory::Register
(
"Action.F_Rational_Frame"
, append_entry);
30
#endif
31
}
32
//- end
33
34
//- parameters class
35
Parameters_Action_F_Rational_frame::Parameters_Action_F_Rational_frame
() { append_entry(*
this
); }
36
//- end
37
38
//====================================================================
39
void
Action_F_Rational_frame::set_parameters
(
const
Parameters
& params)
40
{
41
const
string
str_vlevel = params.
get_string
(
"verbose_level"
);
42
43
m_vl
=
vout
.
set_verbose_level
(str_vlevel);
44
}
45
46
47
//====================================================================
48
void
Action_F_Rational_frame::setup
()
49
{
50
int
Nc =
CommonParameters::Nc
();
51
int
Nvol =
CommonParameters::Nvol
();
52
int
Ndim =
CommonParameters::Ndim
();
53
int
NinG = 2 * Nc * Nc;
54
55
m_force
.
reset
(NinG, Nvol, Ndim);
56
57
// link variable update flag
58
m_status_linkv
= 0;
59
}
60
61
62
//====================================================================
63
double
Action_F_Rational_frame::langevin
(
RandomNumbers
*rand)
64
{
65
int
NinF =
m_fopr_langev
->
field_nin
();
66
int
NvolF =
m_fopr_langev
->
field_nvol
();
67
int
NexF =
m_fopr_langev
->
field_nex
();
68
int
size_psf = NinF * NvolF * NexF *
CommonParameters::NPE
();
69
70
m_psf
.
reset
(NinF, NvolF, NexF);
71
72
vout
.
general
(
m_vl
,
" Action_F_Rational: %s\n"
,
m_label
.c_str());
73
74
Field
xi(NinF, NvolF, NexF);
75
rand->
gauss_lex_global
(xi);
76
77
m_fopr_langev
->
set_config
(
m_U
);
78
m_psf
=
m_fopr_langev
->
mult
(xi);
79
80
double
xi2 = xi.
norm
();
81
double
H_psf = xi2 * xi2;
82
83
vout
.
general
(
m_vl
,
" H_Frational = %18.8f\n"
, H_psf);
84
vout
.
general
(
m_vl
,
" H_F/dof = %18.8f\n"
, H_psf / size_psf);
85
86
return
H_psf;
87
}
88
89
90
//====================================================================
91
double
Action_F_Rational_frame::calcH
()
92
{
93
int
NinF =
m_fopr_H
->
field_nin
();
94
int
NvolF =
m_fopr_H
->
field_nvol
();
95
int
NexF =
m_fopr_H
->
field_nex
();
96
int
size_psf = NinF * NvolF * NexF *
CommonParameters::NPE
();
97
98
Field
v1(NinF, NvolF, NexF);
99
100
vout
.
general
(
m_vl
,
" Action_F_Rational: %s\n"
,
m_label
.c_str());
101
102
m_fopr_H
->
set_config
(
m_U
);
103
v1 =
m_fopr_H
->
mult
(
m_psf
);
104
105
double
H_psf = v1 *
m_psf
;
106
107
vout
.
general
(
m_vl
,
" H_Frational = %18.8f\n"
, H_psf);
108
vout
.
general
(
m_vl
,
" H_F/dof = %18.8f\n"
, H_psf / size_psf);
109
110
return
H_psf;
111
}
112
113
114
//====================================================================
115
const
Field
Action_F_Rational_frame::force
()
116
{
117
if
(
m_status_linkv
== 0) {
118
int
Nvol =
m_U
->
nvol
();
119
int
Nex =
m_U
->
nex
();
120
121
Field_G
force
(Nvol, Nex), force1(Nvol, Nex);
122
123
vout
.
general
(
m_vl
,
" Action_F_Rational: %s\n"
,
m_label
.c_str());
124
125
m_fopr_force_MD
->
set_config
(
m_U
);
126
force
=
m_fopr_force_MD
->
force_core
(
m_psf
);
127
128
m_force
= (
Field
)
force
;
129
++
m_status_linkv
;
130
131
double
Fave, Fmax, Fdev;
132
m_force
.
stat
(Fave, Fmax, Fdev);
133
vout
.
general
(
m_vl
,
" Frational_frame_ave = %12.6f Frational_frame_max = %12.6f Frational_frame_dev = %12.6f\n"
,
134
Fave, Fmax, Fdev);
135
136
return
m_force
;
137
}
else
{
138
vout
.
general
(
m_vl
,
" Frational returns previous force.\n"
);
139
return
m_force
;
140
}
141
}
142
143
144
//====================================================================
145
//============================================================END=====
src
Action
action_F_Rational_Frame.cpp
Generated on Tue Jul 23 2013 10:48:47 for Bridge++ by
1.8.3.1