Free Electron
ext
spatial
ScalarFieldI.h
Go to the documentation of this file.
1
/* Copyright (C) 2003-2021 Free Electron Organization
2
Any use of this software requires a license. If a valid license
3
was not distributed with this file, visit freeelectron.org. */
4
5
/** @file */
6
7
#ifndef __spatial_ScalarFieldI_h__
8
#define __spatial_ScalarFieldI_h__
9
10
#include "
math/math.h
"
11
12
namespace
fe
13
{
14
namespace
ext
15
{
16
17
/** Scalar Field */
18
class
FE_DL_EXPORT
ScalarFieldI
:
virtual
public
Component
19
{
20
public
:
21
virtual
Real sample(
const
SpatialVector
&a_location) = 0;
22
virtual
void
gradient(
SpatialVector
&a_gradient,
23
const
SpatialVector
&a_location) = 0;
24
virtual
Real volume(
void
) = 0;
25
virtual
void
set
( Real a_value) = 0;
26
virtual
void
set
(
const
SpatialVector
&a_location,
27
Real a_value) = 0;
28
virtual
void
add(
const
SpatialVector
&a_location,
29
Real a_value) = 0;
30
virtual
void
radialSet(
const
SpatialVector
&a_location,
31
const
SpatialVector
&a_radius,
32
Real a_value) = 0;
33
virtual
sp<SpaceI>
space(
void
) = 0;
34
};
35
36
}
/* namespace ext */
37
}
/* namespace fe */
38
39
#endif
/* __spatial_ScalarFieldI_h__ */
40
math.h
fe
kernel
Definition:
namespace.dox:3
fe::Vector< 3, Real >
fe::Component
Base for all interfacable components.
Definition:
Component.h:20
fe::sp< SpaceI >
fe::ext::ScalarFieldI
Scalar Field.
Definition:
ScalarFieldI.h:18
Generated by
1.8.13