00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _ABSTRACTNONLINEARELLIPTICPDE_HPP_
00029 #define _ABSTRACTNONLINEARELLIPTICPDE_HPP_
00030
00031 #include "UblasCustomFunctions.hpp"
00032 #include "ChastePoint.hpp"
00033
00034
00044 template <unsigned SPACE_DIM>
00045 class AbstractNonlinearEllipticPde
00046 {
00047 public:
00048
00049 virtual double ComputeLinearSourceTerm(const ChastePoint<SPACE_DIM>& x)=0;
00050
00051 virtual double ComputeNonlinearSourceTerm(const ChastePoint<SPACE_DIM>& x,
00052 double u)=0;
00053
00054 virtual c_matrix<double, SPACE_DIM, SPACE_DIM> ComputeDiffusionTerm(const ChastePoint<SPACE_DIM>& x,
00055 double u)=0;
00056
00057 virtual c_matrix<double, SPACE_DIM, SPACE_DIM> ComputeDiffusionTermPrime(const ChastePoint<SPACE_DIM>& x,
00058 double u)=0;
00059
00060 virtual double ComputeNonlinearSourceTermPrime(const ChastePoint<SPACE_DIM>& x,
00061 double u)=0;
00062 virtual ~AbstractNonlinearEllipticPde()
00063 {}
00064 };
00065
00066 #endif //_ABSTRACTNONLINEARELLIPTICPDE_HPP_