00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef VARIATIONAL_OPERATOR_NU_DX_U_V_HPP
00021 #define VARIATIONAL_OPERATOR_NU_DX_U_V_HPP
00022
00023 #include <VariationalBilinearOperator.hpp>
00024 #include <ScalarFunctionBuilder.hpp>
00025 #include <ScalarFunctionBase.hpp>
00026
00035 class VariationalNuDxUVOperator
00036 : public VariationalBilinearOperator
00037 {
00038 private:
00039 ConstReferenceCounting<ScalarFunctionBase>
00040 __nu;
00042 const size_t __i;
00043 public:
00049 ConstReferenceCounting<ScalarFunctionBase> nu() const
00050 {
00051 return __nu;
00052 }
00053
00059 const size_t& i() const
00060 {
00061 return __i;
00062 }
00063
00071 ReferenceCounting<VariationalBilinearOperator>
00072 operator*(const ConstReferenceCounting<ScalarFunctionBase>& c) const
00073 {
00074 VariationalNuDxUVOperator* newOperator
00075 = new VariationalNuDxUVOperator(*this);
00076
00077 ScalarFunctionBuilder functionBuilder;
00078 functionBuilder.setFunction(__nu);
00079 functionBuilder.setBinaryOperation(BinaryOperation::product,c);
00080
00081 newOperator->__nu = functionBuilder.getBuiltFunction();
00082
00083 return newOperator;
00084 }
00085
00096 VariationalNuDxUVOperator(const size_t& unknownNumber,
00097 const VariationalOperator::Property& unknownProperty,
00098 const size_t& testFunctionNumber,
00099 const VariationalOperator::Property& testFunctionProperty,
00100 ConstReferenceCounting<ScalarFunctionBase> nu,
00101 const size_t& i)
00102 : VariationalBilinearOperator(VariationalBilinearOperator::nuDxUV,
00103 unknownNumber, unknownProperty,
00104 testFunctionNumber, testFunctionProperty),
00105 __nu(nu),
00106 __i(i)
00107 {
00108 ;
00109 }
00110
00116 VariationalNuDxUVOperator(const VariationalNuDxUVOperator& V)
00117 : VariationalBilinearOperator(V),
00118 __nu(V.__nu),
00119 __i(V.__i)
00120 {
00121 ;
00122 }
00123
00128 ~VariationalNuDxUVOperator()
00129 {
00130 ;
00131 }
00132 };
00133
00134 #endif // VARIATIONAL_OPERATOR_NU_DX_U_V_HPP