aslFDAdvectionDiffusionBC.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 ASLFDADVECTIONDIFFUSIONBC_H
#define ASLFDADVECTIONDIFFUSIONBC_H
#include "aslBCond.h"
namespace acl
{
class Kernel;
typedef std::shared_ptr<Kernel> SPKernel;
}
namespace asl
{
class FDAdvectionDiffusion;
typedef std::shared_ptr<FDAdvectionDiffusion> SPFDAdvectionDiffusion;
class AbstractDataWithGhostNodes;
typedef std::shared_ptr<AbstractDataWithGhostNodes> SPAbstractDataWithGhostNodes;
class BCConstantFluxMap:public BCondWithMap
{
public:
typedef SPAbstractDataWithGhostNodes Data;
acl::SPKernel kernel;
protected:
Data data;
acl::VectorOfElements value;
public:
BCConstantFluxMap(Data d,
const acl::VectorOfElements & val,
Data map,
const VectorTemplate *const t);
~BCConstantFluxMap();
virtual void execute();
virtual void init();
void setValue(const acl::VectorOfElements & v);
};
SPNumMethod generateBCConstantFlux(SPFDAdvectionDiffusion nm,
double flux,
SPAbstractDataWithGhostNodes map);
} // asl
#endif // ASLFDADVECTIONDIFFUSIONBC_H
acl::VectorOfElements
The class represents several Element.
Definition: aclVectorOfElementsDef.h:92
asl::BCConstantFluxMap
Bondary condition that makes constant flux for pure diffusion <>
Definition: aslFDAdvectionDiffusionBC.h:46
asl::BCConstantFluxMap::data
Data data
Definition: aslFDAdvectionDiffusionBC.h:51
asl::BCConstantFluxMap::execute
virtual void execute()
Executes the numerical procedure.
asl::BCConstantFluxMap::setValue
void setValue(const acl::VectorOfElements &v)
asl::BCConstantFluxMap::init
virtual void init()
Builds the necesery internal data and kernels.
asl::BCConstantFluxMap::kernel
acl::SPKernel kernel
Definition: aslFDAdvectionDiffusionBC.h:49
asl::BCConstantFluxMap::Data
SPAbstractDataWithGhostNodes Data
Definition: aslFDAdvectionDiffusionBC.h:48
asl::BCConstantFluxMap::~BCConstantFluxMap
~BCConstantFluxMap()
asl::BCConstantFluxMap::value
acl::VectorOfElements value
Definition: aslFDAdvectionDiffusionBC.h:52
asl::BCConstantFluxMap::BCConstantFluxMap
BCConstantFluxMap(Data d, const acl::VectorOfElements &val, Data map, const VectorTemplate *const t)
asl::BCondWithMap
Virtual class describes general interface for boundary conditions.
Definition: aslBCond.h:101
asl::BCondWithMap::map
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
Definition: aslBCond.h:111
asl::VectorTemplate
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
acl
Advanced Computational Language.
Definition: acl.h:41
acl::map
std::shared_ptr< T > map(ElementData m)
Definition: aclMemBlock.h:68
acl::SPKernel
std::shared_ptr< Kernel > SPKernel
Definition: aclKernelMerger.h:34
asl
Advanced Simulation Library.
Definition: aslDataInc.h:31
asl::SPAbstractDataWithGhostNodes
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
Definition: aslGenerators.h:50
asl::SPNumMethod
std::shared_ptr< NumMethod > SPNumMethod
Definition: aslNumMethod.h:44
asl::generateBCConstantFlux
SPNumMethod generateBCConstantFlux(SPFDAdvectionDiffusion nm, double flux, SPAbstractDataWithGhostNodes map)
asl::SPFDAdvectionDiffusion
std::shared_ptr< FDAdvectionDiffusion > SPFDAdvectionDiffusion
Definition: aslFDAdvectionDiffusion.h:113
aslBCond.h