Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Mpp
MLUQ
Commits
f64e12ec
Commit
f64e12ec
authored
Sep 25, 2020
by
niklas.baumgarten
Browse files
new sampel generator
parent
63dc6eb8
Changes
1
Hide whitespace changes
Inline
Side-by-side
mlmc/src/stochastics/SampleGenerator.hpp
View file @
f64e12ec
#ifndef SAMPLEGENERATOR_HPP
#define SAMPLEGENERATOR_HPP
#include
<utility>
#include
"utility/Config.hpp"
#include
"
Algebra.h
"
#include
"m
ontecarlo/SampleID
.hpp"
#include
"
utility/SampleID.hpp
"
#include
"m
esh/Meshes
.hpp"
template
<
typename
Sample
>
class
SampleGenerator
{
protected:
int
plotting
=
0
;
int
verbose
=
0
;
virtual
void
generateFineSample
(
SampleID
id
,
Sample
*&
fineSample
,
Sample
*&
coarseSample
)
=
0
;
virtual
void
generateCoarseSample
(
SampleID
id
,
Sample
*&
fineSample
,
Sample
*&
coarseSample
)
=
0
;
virtual
void
drawSample
(
SampleID
id
)
=
0
;
public:
int
l
;
Meshes
&
meshes
;
explicit
SampleGenerator
(
int
l
,
Meshes
&
meshes
)
:
l
(
l
),
meshes
(
meshes
)
{
explicit
SampleGenerator
(
Meshes
&
meshes
)
:
meshes
(
meshes
)
{
config
.
get
(
"GeneratorPlotting"
,
plotting
);
config
.
get
(
"GeneratorVerbose"
,
verbose
);
}
void
DrawSample
(
SampleID
id
,
Sample
*&
fineSample
,
Sample
*&
coarseSample
)
{
mout
.
StartBlock
(
"Sample Generator"
);
virtual
~
SampleGenerator
()
{}
void
DrawSample
(
SampleID
id
)
{
mout
.
StartBlock
(
Name
());
// Todo use Generator Name
vout
(
1
)
<<
id
.
Str
()
<<
endl
;
if
(
!
id
.
coarse
)
generateFineSample
(
id
,
fineSample
,
coarseSample
);
else
generateCoarseSample
(
id
,
fineSample
,
coarseSample
);
drawSample
(
id
);
mout
.
EndBlock
(
verbose
==
0
);
}
virtual
string
Name
()
const
=
0
;
/*
* Scalar return values
*/
virtual
Scalar
EvalScalarSample
(
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Scalar
EvalScalarSample
(
int
,
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Scalar
EvalScalarSample
(
double
,
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Scalar
EvalScalarSample
(
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Scalar
EvalScalarSample
(
int
,
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Scalar
EvalScalarSample
(
double
,
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
/*
* VectorField return values
*/
virtual
VectorField
EvalVectorFieldSample
(
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
VectorField
EvalVectorFieldSample
(
int
,
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
VectorField
EvalVectorFieldSample
(
double
,
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
VectorField
EvalVectorFieldSample
(
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
virtual
VectorField
EvalVectorFieldSample
(
int
,
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
virtual
VectorField
EvalVectorFieldSample
(
double
,
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
/*
* Tensor return values
*/
virtual
Tensor
EvalTensorSample
(
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Tensor
EvalTensorSample
(
int
,
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Tensor
EvalTensorSample
(
double
,
const
Point
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Tensor
EvalTensorSample
(
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Tensor
EvalTensorSample
(
int
,
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
virtual
Tensor
EvalTensorSample
(
double
,
const
cell
&
)
{
Exit
(
"Not implemented"
)
}
};
#endif //SAMPLEGENERATOR_HPP
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment