aslDataResampling.h
Go to the documentation of this file.
/*
* Advanced Simulation Library <http://asl.org.il>
*
* Copyright 2015 Avtech Scientific <http://avtechscientific.com>
*
*
* This file is part of Advanced Simulation Library (ASL).
*
* ASL is free software: you can redistribute it and/or modify it
* under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, version 3 of the License.
*
* ASL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with ASL. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef ASLDATARESAMPLING_H
#define ASLDATARESAMPLING_H
#include "aslSingleKernelNM.h"
#include "math/aslVectors.h"
//#include <CL/cl.hpp>
// Supply "cl.hpp" with ASL, since it is not present in OpenCL 2.0
// Remove the file after switching to OpenCL 2.1
#include "acl/cl.hpp"
namespace acl
{
class VectorOfElementsData;
}
namespace asl
{
class VectorTemplate;
template <typename V> class DataWithGhostNodes;
typedef DataWithGhostNodes<acl::VectorOfElementsData> DataWithGhostNodesACLData;
typedef std::shared_ptr<DataWithGhostNodesACLData> SPDataWithGhostNodesACLData;
class AbstractDataWithGhostNodes;
typedef std::shared_ptr<AbstractDataWithGhostNodes> SPAbstractDataWithGhostNodes;
class DataCoarser: public SingleKernelNM
{
public:
typedef SPDataWithGhostNodesACLData Data;
private:
Data dataIn;
Data dataOut;
const VectorTemplate* vectorTemplate;
virtual void init0();
public:
DataCoarser();
DataCoarser(Data dIn);
inline Data getDataOut();
};
typedef std::shared_ptr<DataCoarser> SPDataCoarser;
SPDataWithGhostNodesACLData coarseData(SPDataWithGhostNodesACLData d);
class DataClipper: public SingleKernelNM
{
public:
typedef SPDataWithGhostNodesACLData Data;
private:
Data dataIn;
Data dataOut;
AVec<int> a0;
AVec<int> aE;
virtual void init0();
public:
DataClipper();
DataClipper(Data dIn, AVec<int> a0, AVec<int> aE);
inline Data getDataOut();
};
typedef std::shared_ptr<DataClipper> SPDataClipper;
inline SPDataWithGhostNodesACLData clipData(SPDataWithGhostNodesACLData d,
AVec<int> a0,
AVec<int> aE);
//----------------------------- Implementation -----------------------
DataCoarser::Data DataCoarser::getDataOut()
{
return dataOut;
}
DataClipper::Data DataClipper::getDataOut()
{
return dataOut;
}
inline SPDataWithGhostNodesACLData coarseData(SPDataWithGhostNodesACLData d)
{
DataCoarser dc(d);
dc.init();
dc.execute();
return dc.getDataOut();
}
inline SPDataWithGhostNodesACLData clipData(SPDataWithGhostNodesACLData d,
AVec<int> a0,
AVec<int> aE)
{
asl::DataClipper dcl(d, a0,aE);
dcl.init();
dcl.execute();
return dcl.getDataOut();
}
} // asl
#endif // ASLDATARESAMPLING_H
asl::AVec< int >
asl::DataClipper
Algorithm for generation of coarsed dataset.
Definition: aslDataResampling.h:83
asl::DataClipper::DataClipper
DataClipper(Data dIn, AVec< int > a0, AVec< int > aE)
asl::DataClipper::DataClipper
DataClipper()
asl::DataClipper::Data
SPDataWithGhostNodesACLData Data
Definition: aslDataResampling.h:85
asl::DataClipper::getDataOut
Data getDataOut()
Definition: aslDataResampling.h:114
asl::DataCoarser
Algorithm for generation of coarsed dataset.
Definition: aslDataResampling.h:55
asl::DataCoarser::getDataOut
Data getDataOut()
Definition: aslDataResampling.h:109
asl::DataCoarser::DataCoarser
DataCoarser(Data dIn)
asl::DataCoarser::DataCoarser
DataCoarser()
asl::DataCoarser::Data
SPDataWithGhostNodesACLData Data
Definition: aslDataResampling.h:57
asl::SingleKernelNM
Definition: aslSingleKernelNM.h:47
asl::SingleKernelNM::execute
virtual void execute()
Executes the numerical procedure.
asl::SingleKernelNM::init
virtual void init()
Builds the necesery internal data and kernels.
asl::VectorTemplate
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
asl::coarseData
SPDataWithGhostNodesACLData coarseData(SPDataWithGhostNodesACLData d)
Definition: aslDataResampling.h:119
asl::clipData
SPDataWithGhostNodesACLData clipData(SPDataWithGhostNodesACLData d, AVec< int > a0, AVec< int > aE)
Definition: aslDataResampling.h:128
acl
Advanced Computational Language.
Definition: acl.h:41
asl
Advanced Simulation Library.
Definition: aslDataInc.h:31
asl::DataWithGhostNodesACLData
DataWithGhostNodes< acl::VectorOfElementsData > DataWithGhostNodesACLData
Definition: aslGenerators.h:45
asl::SPAbstractDataWithGhostNodes
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
asl::SPDataClipper
std::shared_ptr< DataClipper > SPDataClipper
Definition: aslDataResampling.h:100
asl::SPDataWithGhostNodesACLData
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
asl::SPDataCoarser
std::shared_ptr< DataCoarser > SPDataCoarser
Definition: aslDataResampling.h:71
aslSingleKernelNM.h