Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10881061
ScannerSRGEtools.h
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
ScannerSRGEtools.h
View Options
#ifndef SCANNERSRGETOOLS_H
#define SCANNERSRGETOOLS_H
#include
<vector>
#include
<iostream>
#include
<cmath>
#include
<gsl/gsl_odeiv.h>
//#include <gsl/gsl_integration.h>
#include
<gsl/gsl_errno.h>
int
func
(
double
x
,
const
double
y
[],
double
dydx
[],
void
*
params_point
);
int
dummyjac
(
double
x
,
const
double
y
[],
double
*
dydx_dy
,
double
dydx_dr
[],
void
*
params_point
);
struct
internal_paramsRGE
{
int
dim
;
void
*
params
;
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
);
};
// Basic evolution routine
void
EvolveDirect
(
const
double
ti
,
const
double
tf
,
const
std
::
vector
<
double
>
&
yi
,
std
::
vector
<
double
>
&
yf
,
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
),
void
*
params
,
const
double
AbsError
,
const
double
RelErr
);
//Basic evolution that stops if check fails
double
EvolvePlusCheckDirect
(
const
double
ti
,
const
double
tf
,
const
std
::
vector
<
double
>
&
yi
,
std
::
vector
<
double
>
&
yf
,
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
),
void
*
params1
,
bool
(
*
check
)(
const
std
::
vector
<
double
>
&
y
,
void
*
),
void
*
params2
,
const
double
AbsError
,
const
double
RelErr
);
//Basic evolution that stops if check fails, keeping the middle points
double
EvolvePlusCheckKeepAll
(
const
double
ti
,
const
double
tf
,
std
::
vector
<
double
>
&
t_evolve
,
const
std
::
vector
<
double
>
&
yi
,
std
::
vector
<
std
::
vector
<
double
>
>
&
y_evolve
,
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
),
void
*
params1
,
bool
(
*
check
)(
const
std
::
vector
<
double
>
&
y
,
void
*
),
void
*
params2
,
const
double
AbsError
,
const
double
RelErr
);
// Evolution storing couplings (and all other evolving functions) at npoints points
bool
EvolveBySteps
(
const
double
ti
,
const
double
tf
,
std
::
vector
<
double
>
&
tevolution
,
const
std
::
vector
<
double
>
&
yi
,
std
::
vector
<
std
::
vector
<
double
>
>
&
yevolution
,
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
),
void
*
params
,
const
double
AbsError
,
const
double
RelErr
,
const
int
npoints
);
// Evolution with nchecks points, stopping when checks fail. Returns t correpsonding to failure.
double
EvolvePlusCheckDirect
(
const
double
ti
,
const
double
tf
,
const
std
::
vector
<
double
>
&
yi
,
std
::
vector
<
double
>
&
yf
,
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
),
void
*
params1
,
bool
(
*
check
)(
const
std
::
vector
<
double
>
&
y
,
void
*
),
void
*
params2
,
const
double
AbsError
,
const
double
RelErr
,
const
int
npoints
);
// Evolution storing couplings at nchecks points, stopping when checks fail. Returns x correpsonding to failure.
double
EvolvePlusCheckBySteps
(
const
double
ti
,
const
double
tf
,
std
::
vector
<
double
>
&
tevolution
,
const
std
::
vector
<
double
>
&
yi
,
std
::
vector
<
std
::
vector
<
double
>
>
&
yevolution
,
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
),
void
*
params1
,
bool
(
*
check
)(
const
std
::
vector
<
double
>
&
y
,
void
*
),
void
*
params2
,
const
double
AbsError
,
const
double
RelErr
,
const
int
npoints
);
//-----------------------------------------------------------//
// Evolution storing with checks at all computed points, stopping when checks fail. Returns x correpsonding to failure.
double
EvolveDirect
(
const
double
ti
,
const
double
tf
,
const
std
::
vector
<
double
>
&
yi
,
std
::
vector
<
double
>
&
yf
,
void
(
*
derivatives
)(
const
double
,
const
std
::
vector
<
double
>
&
y
,
std
::
vector
<
double
>
&
dydx
,
void
*
),
void
*
params1
,
bool
(
*
check
)(
const
std
::
vector
<
double
>
&
y
,
void
*
),
void
*
params2
,
const
double
AbsError
,
const
double
RelErr
);
//-----------------------------------------------------------//
//checks is double is not a number
bool
isNaNorInf
(
double
var
);
//checks if the vector has any nan or inf members
bool
isNaNorInf
(
const
std
::
vector
<
double
>
&
y
);
#endif
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sat, May 3, 5:50 AM (17 h, 45 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4982829
Default Alt Text
ScannerSRGEtools.h (3 KB)
Attached To
rSCANNERSSVN scannerssvn
Event Timeline
Log In to Comment