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