aslTemplateVE.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 TEMPLATEVE_H_INCLUDED
#define TEMPLATEVE_H_INCLUDED
#include <acl/aclMath/aclVectorOfElements.h>
#include "data/aslDataWithGhostNodes.h"
#include "aslTemplatesExtras.h"
#include "aslDistanceFunction.h"
namespace asl
{
class TemplateVE
{
public:
const VectorTemplate* vectorTemplate;
const VTObjects* vto;
acl::VectorOfElements values;
acl::VectorOfElements initValues;
TemplateVE(AbstractDataWithGhostNodes & data,
const VectorTemplate & vectorT,
unsigned int i=0,
bool bIni=true);
TemplateVE(DistanceFunction & data,
acl::VectorOfElements & position,
const VectorTemplate & vectorT,
unsigned int i=0);
TemplateVE(const acl::VectorOfElements & val,
const VectorTemplate & vectorT);
TemplateVE();
acl::VectorOfElements getValue(unsigned int i);
void init(AbstractDataWithGhostNodes & data,
const VectorTemplate & vectorT,
unsigned int i=0,
bool bIni=true);
void init(DistanceFunction & data,
acl::VectorOfElements & position,
const VectorTemplate & vectorT,
unsigned int i=0);
}; // class TemplateVE
TemplateVE operator+ (const TemplateVE &a, const TemplateVE &b);
TemplateVE operator- (const TemplateVE &a, const TemplateVE &b);
TemplateVE operator* (const TemplateVE &a, const TemplateVE &b);
TemplateVE operator/ (const TemplateVE &a, const TemplateVE &b);
acl::VectorOfElements laplas(const TemplateVE & a);
acl::VectorOfElements gradient(const TemplateVE & a);
acl::VectorOfElements dx(const TemplateVE & a);
acl::VectorOfElements dy(const TemplateVE & a);
acl::VectorOfElements dz(const TemplateVE & a);
acl::VectorOfElements dxi(const TemplateVE & a, unsigned int i);
acl::VectorOfElements divAgradB(const TemplateVE & a, const TemplateVE & b);
acl::VectorOfElements div(const vector<TemplateVE> & a);
acl::VectorOfElements divProduct(const vector<TemplateVE> & a, const TemplateVE & c);
acl::VectorOfElements div(const TemplateVE & ax, const TemplateVE & ay);
acl::VectorOfElements div(const TemplateVE & ax, const TemplateVE & ay, const TemplateVE & az);
acl::VectorOfElements dIdJ(unsigned int i, unsigned int j, const TemplateVE & a);
acl::VectorOfElements interpolate(const TemplateVE & a, acl::VectorOfElements e);
}// asl
#endif // TEMPLATEVE_H_INCLUDED
acl::VectorOfElements
The class represents several Element.
Definition: aclVectorOfElementsDef.h:92
asl::AbstractDataWithGhostNodes
Definition: aslDataWithGhostNodes.h:39
asl::DistanceFunction
Definition: aslDistanceFunction.h:49
asl::TemplateVE
This class contains VectorOfElements which corresponds to values of a field in littice nodes.
Definition: aslTemplateVE.h:52
asl::TemplateVE::TemplateVE
TemplateVE(AbstractDataWithGhostNodes &data, const VectorTemplate &vectorT, unsigned int i=0, bool bIni=true)
asl::TemplateVE::TemplateVE
TemplateVE()
asl::TemplateVE::init
void init(AbstractDataWithGhostNodes &data, const VectorTemplate &vectorT, unsigned int i=0, bool bIni=true)
asl::TemplateVE::TemplateVE
TemplateVE(const acl::VectorOfElements &val, const VectorTemplate &vectorT)
this is used for matematical operations with TemplateVE
asl::TemplateVE::initValues
acl::VectorOfElements initValues
Definition: aslTemplateVE.h:57
asl::TemplateVE::TemplateVE
TemplateVE(DistanceFunction &data, acl::VectorOfElements &position, const VectorTemplate &vectorT, unsigned int i=0)
asl::TemplateVE::init
void init(DistanceFunction &data, acl::VectorOfElements &position, const VectorTemplate &vectorT, unsigned int i=0)
asl::TemplateVE::vectorTemplate
const VectorTemplate * vectorTemplate
Definition: aslTemplateVE.h:54
asl::TemplateVE::vto
const VTObjects * vto
Definition: aslTemplateVE.h:55
asl::TemplateVE::values
acl::VectorOfElements values
Definition: aslTemplateVE.h:56
asl::TemplateVE::getValue
acl::VectorOfElements getValue(unsigned int i)
asl::VTObjects
Defines andditionl features related to a VectorTemplate.
Definition: aslTemplatesExtras.h:44
asl::VectorTemplate
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
asl::dz
acl::VectorOfElements dz(const TemplateVE &a)
differential operator
asl::gradient
acl::VectorOfElements gradient(const TemplateVE &a)
differential operator
asl::dx
acl::VectorOfElements dx(const TemplateVE &a)
differential operator
asl::div
acl::VectorOfElements div(const vector< TemplateVE > &a)
differential operator
asl::dxi
acl::VectorOfElements dxi(const TemplateVE &a, unsigned int i)
differential operator
asl::laplas
acl::VectorOfElements laplas(const TemplateVE &a)
differential operator
asl::dIdJ
acl::VectorOfElements dIdJ(unsigned int i, unsigned int j, const TemplateVE &a)
differential operator
asl::dy
acl::VectorOfElements dy(const TemplateVE &a)
differential operator
asl::divProduct
acl::VectorOfElements divProduct(const vector< TemplateVE > &a, const TemplateVE &c)
differential operator
asl::divAgradB
acl::VectorOfElements divAgradB(const TemplateVE &a, const TemplateVE &b)
differential operator
asl::operator-
SPDistanceFunction operator-(SPDistanceFunction a)
asl::operator*
SPPositionFunction operator*(SPPositionFunction a, SPPositionFunction b)
Definition: aslPositionFunction.h:215
asl
Advanced Simulation Library.
Definition: aslDataInc.h:31
asl::interpolate
acl::VectorOfElements interpolate(const TemplateVE &a, acl::VectorOfElements e)
generates expresion for bilinear interpolation the template should be an elementary cell
asl::operator+
const AMatr< T > operator+(const AMatr< T > &a, const AMatr< T > &b)
Definition: aslMatrices.h:252
asl::operator/
const AMatr< T > operator/(const AMatr< T > &b, const T &a)
Definition: aslMatrices.h:264
aslDistanceFunction.h
aslTemplatesExtras.h