aslFDPoroElasticity.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 ASLFDPOROELASTICITY_H
#define ASLFDPOROELASTICITY_H
#include "aslNumMethod.h"
#include "acl/aclMath/aclVectorOfElementsDef.h"
#include "aslFDElasticity.h"
#include "utilities/aslUValue.h"
namespace asl
{
class FDPoroElasticity: public ElasticityCommonA
{
private:
Data pressureData;
Data pressureInternalData;
Data pressureLiquidData;
Data pressureLiquidInternalData;
Param hydraulicCondactivity;
Param compresibility;
Param nSubsteps;
public:
FDPoroElasticity();
FDPoroElasticity(Data d, Data pl, Param bM,
Param sM, Param k,
const VectorTemplate* vT);
~FDPoroElasticity();
virtual void init();
virtual void execute();
inline Data getPressureData() const;
inline Data getLiquidPressureData() const;
void setNSubsteps(unsigned int n);
};
typedef std::shared_ptr<FDPoroElasticity> SPFDPoroElasticity;
SPFDPoroElasticity generateFDPoroElasticity(SPDataWithGhostNodesACLData d,
SPDataWithGhostNodesACLData pl,
double bM,
double sM,
double k,
const VectorTemplate* vT);
template <typename T>
SPFDPoroElasticity generateFDPoroElasticity(SPDataWithGhostNodesACLData d,
SPDataWithGhostNodesACLData pl,
UValue<T> bM,
UValue<T> sM,
UValue<T> k,
const VectorTemplate* vT);
//-------------------------IMPLEMENTATION------------------------
inline ElasticityCommonA::Data FDPoroElasticity::getPressureData() const
{
return pressureData;
}
inline ElasticityCommonA::Data FDPoroElasticity::getLiquidPressureData() const
{
return pressureLiquidData;
}
} // asl
#endif // ASLFDELASTICITY_H
acl::VectorOfElements
The class represents several Element.
Definition: aclVectorOfElementsDef.h:92
asl::ElasticityCommonA::Data
SPDataWithGhostNodesACLData Data
Definition: aslFDElasticity.h:57
asl::FDPoroElasticity::init
virtual void init()
Builds the necesery internal data and kernels.
asl::FDPoroElasticity::FDPoroElasticity
FDPoroElasticity()
asl::FDPoroElasticity::getLiquidPressureData
Data getLiquidPressureData() const
Definition: aslFDPoroElasticity.h:159
asl::FDPoroElasticity::setNSubsteps
void setNSubsteps(unsigned int n)
defaul value 10
asl::FDPoroElasticity::getPressureData
Data getPressureData() const
Definition: aslFDPoroElasticity.h:154
asl::FDPoroElasticity::execute
virtual void execute()
Executes the numerical procedure.
asl::FDPoroElasticity::FDPoroElasticity
FDPoroElasticity(Data d, Data pl, Param bM, Param sM, Param k, const VectorTemplate *vT)
asl::FDPoroElasticity::getLiquidPressureData
Data getLiquidPressureData() const
asl::FDPoroElasticity::getPressureData
Data getPressureData() const
asl::FDPoroElasticity::~FDPoroElasticity
~FDPoroElasticity()
asl::UValue< FlT >
asl::VectorTemplate
Defines set of vectros with several properties.
Definition: aslTemplates.h:88
asl
Advanced Simulation Library.
Definition: aslDataInc.h:31
asl::SPFDPoroElasticity
std::shared_ptr< FDPoroElasticity > SPFDPoroElasticity
Definition: aslFDPoroElasticity.h:119
asl::generateFDPoroElasticity
SPFDPoroElasticity generateFDPoroElasticity(SPDataWithGhostNodesACLData d, SPDataWithGhostNodesACLData pl, double bM, double sM, double k, const VectorTemplate *vT)
asl::SPDataWithGhostNodesACLData
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData
Definition: aslGenerators.h:47
aslFDElasticity.h
aslNumMethod.h