GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmAcTraversalUtils.h
Go to the documentation of this file.
1/************************************************************************
2**
3** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4** All rights reserved.
5**
6** This file is part of the "GeMA" software. It's use should respect
7** the terms in the license agreement that can be found together
8** with this source code.
9** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11** A PARTICULAR PURPOSE.
12**
13************************************************************************/
14
23#ifndef _GEMA_AC_TRAVERSAL_UTILS_H_
24#define _GEMA_AC_TRAVERSAL_UTILS_H_
25
26#include "gmCoreConfig.h"
27#include "gmVector.h"
28#include "gmValueAccessor.h"
29#include "gmCellAccessor.h"
30#include "gmGaussAccessor.h"
31
32class GmTaskManager;
33class GmCellMesh;
34
35namespace GmAcTraversalUtils
36{
37
38template<typename Accessor>
39void AccessorMinMax(GmTaskManager* tm, const Accessor* acc, const GmCellMesh* mesh, GmVector& minv, GmVector& maxv, int nworkers = -1);
40
41template<typename Accessor>
42void AccessorRelError2(GmTaskManager* tm, const Accessor* acc1, const Accessor* acc2, const GmCellMesh* mesh, double* err, double* den, int nworkers = -1);
43
44
45extern template GMC_API_EXPORT void AccessorMinMax<GmValueAccessor>(GmTaskManager* tm, const GmValueAccessor* acc, const GmCellMesh* mesh, GmVector& minv, GmVector& maxv, int nworkers);
46extern template GMC_API_EXPORT void AccessorMinMax<GmCellAccessor> (GmTaskManager* tm, const GmCellAccessor* acc, const GmCellMesh* mesh, GmVector& minv, GmVector& maxv, int nworkers);
47extern template GMC_API_EXPORT void AccessorMinMax<GmGaussAccessor>(GmTaskManager* tm, const GmGaussAccessor* acc, const GmCellMesh* mesh, GmVector& minv, GmVector& maxv, int nworkers);
48
49extern template GMC_API_EXPORT void AccessorRelError2<GmValueAccessor>(GmTaskManager* tm, const GmValueAccessor* acc1, const GmValueAccessor* acc2, const GmCellMesh* mesh, double* err, double* den, int nworkers);
50extern template GMC_API_EXPORT void AccessorRelError2<GmCellAccessor> (GmTaskManager* tm, const GmCellAccessor* acc1, const GmCellAccessor* acc2, const GmCellMesh* mesh, double* err, double* den, int nworkers);
51extern template GMC_API_EXPORT void AccessorRelError2<GmGaussAccessor>(GmTaskManager* tm, const GmGaussAccessor* acc1, const GmGaussAccessor* acc2, const GmCellMesh* mesh, double* err, double* den, int nworkers);
52
53}
54#endif // _GEMA_AC_TRAVERSAL_UTILS_H_
The GmCellAccessor class is a proxy object to a value accesor implementing a more convenient interfac...
Definition gmCellAccessor.h:67
Base interface class for CellMesh type plugins.
Definition gmCellMesh.h:40
The GmGaussAccessor class is a proxy object to a value accessor implementing a more convenient interf...
Definition gmGaussAccessor.h:39
Task manager used for handling parallel executions.
Definition gmTaskManager.h:84
Interface class for accessing and setting values from an "indexable" collection of values.
Definition gmValueAccessor.h:60
Implementation of the GmCellAccessor proxy class.
Declaration of useful configuration definitions for the Core library.
#define GMC_API_EXPORT
Macro for controlling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_L...
Definition gmCoreConfig.h:35
Implementation of the GmGaussAccessor proxy class.
Declaration of the GmValueAccessor interface and GmValueAccessorBase class.
Declaration of the GmVector class.
arma::vec GmVector
The basic type for a GeMA vector object. Currently based on an Armadillo vector.
Definition gmVector.h:34