Loading [MathJax]/extensions/tex2jax.js
ug4
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
raster_user_data.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020: G-CSC, Goethe University Frankfurt
3 * Author: Arne Naegel
4 *
5 * This file is part of UG4.
6 *
7 * UG4 is free software: you can redistribute it and/or modify it under the
8 * terms of the GNU Lesser General Public License version 3 (as published by the
9 * Free Software Foundation) with the following additional attribution
10 * requirements (according to LGPL/GPL v3 §7):
11 *
12 * (1) The following notice must be displayed in the Appropriate Legal Notices
13 * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14 *
15 * (2) The following notice must be displayed at a prominent place in the
16 * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17 *
18 * (3) The following bibliography is recommended for citation and must be
19 * preserved in all covered files:
20 * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21 * parallel geometric multigrid solver on hierarchically distributed grids.
22 * Computing and visualization in science 16, 4 (2013), 151-164"
23 * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24 * flexible software system for simulating pde based models on high performance
25 * computers. Computing and visualization in science 16, 4 (2013), 165-179"
26 *
27 * This program is distributed in the hope that it will be useful,
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 * GNU Lesser General Public License for more details.
31 */
32
33#ifndef __UG__LIB_DISC__SPATIAL_DISC__RASTER_USER_DATA_H__
34#define __UG__LIB_DISC__SPATIAL_DISC__RASTER_USER_DATA_H__
35
36#include "common/common.h"
37#include "common/util/raster.h"
41
42namespace ug{
43
45template <int dim>
46class RasterUserData : public StdGlobPosData<RasterUserData<dim>, number, dim, void>
47{
48
49public:
50 typedef number TData;
52
54 // typedef Raster<number, 1> TRaster1;
55 // typedef Raster<number, 2> TRaster2;
56 // typedef Raster<number, 3> TRaster3;
57 //typedef StdGlobPosData<RasterUserData<dim>, number, dim, void> base_type;
58
60
61
62private:
63
67
68
69
70public:
71
73 : m_spRaster(myRaster), m_interpOrder(1), m_rescale(1.0)
74 {}
75
77 {}
78
79
80 inline void evaluate(number& y, const MathVector<dim>& x, number t, int si) const
81 {
82 typename TRaster::Coordinate xcoord;
83 xcoord[0] = x[0];
84 if (dim>1) { xcoord[1] = x[1];}
85 y = m_spRaster->interpolate(xcoord, m_interpOrder)*m_rescale;
86 return;
87 }
88
89 void set_order(int order) {m_interpOrder = order;}
90 void set_scale(number alpha) {m_rescale = alpha;}
91
92 virtual bool requires_grid_fct() const {return false;}
93 virtual bool constant() const {return false;}
94 virtual bool continuous() const {return false;}
95
96};
97
98
99
100
101
102}// end of namespace ug
103
104
105
106#endif // __UG__LIB_DISC__SPATIAL_DISC__RASTER_USER_DATA_H__
Definition smart_pointer.h:108
Type based UserData.
Definition user_data.h:501
a mathematical Vector with N entries.
Definition math_vector.h:97
Generic raster for arbitrary dimensions.
Definition raster.h:73
!
Definition raster_user_data.h:47
number m_rescale
Definition raster_user_data.h:66
void set_scale(number alpha)
Definition raster_user_data.h:90
void set_order(int order)
Definition raster_user_data.h:89
Raster< number, 2 > TRaster
Definition raster_user_data.h:53
virtual ~RasterUserData()
Definition raster_user_data.h:76
RasterUserData(SmartPtr< TRaster > myRaster)
Definition raster_user_data.h:72
virtual bool requires_grid_fct() const
returns if grid function is needed for evaluation
Definition raster_user_data.h:92
SmartPtr< TRaster > input_type
Definition raster_user_data.h:59
number TData
Definition raster_user_data.h:50
CplUserData< TData, dim > base_type
Definition raster_user_data.h:51
virtual bool continuous() const
returns if provided data is continuous over geometric object boundaries
Definition raster_user_data.h:94
virtual bool constant() const
returns if data is constant
Definition raster_user_data.h:93
void evaluate(number &y, const MathVector< dim > &x, number t, int si) const
Definition raster_user_data.h:80
SmartPtr< TRaster > m_spRaster
Definition raster_user_data.h:64
int m_interpOrder
Definition raster_user_data.h:65
Definition std_glob_pos_data.h:55
double number
Definition types.h:124
the ug namespace
typedefs for ugmath