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 #ifndef fdFlow_H
00028 #define fdFlow_H
00029
00030 #include <stresst.h>
00031 #include <straint.h>
00032
00033 #include <FDEPState.h>
00034
00035 class fdFlow
00036 {
00037 public:
00038 fdFlow();
00039 virtual ~fdFlow() {};
00040
00041 virtual fdFlow *newObj() = 0;
00042
00043 virtual stresstensor dFods(const stresstensor &sts, const FDEPState &fdepstate ) const = 0;
00044 virtual double dFodq(const stresstensor &sts, const FDEPState &fdepstate ) const;
00045 virtual stresstensor dFoda(const stresstensor &sts, const FDEPState &fdepstate ) const;
00046
00047 virtual tensor d2Fodsds(const stresstensor &sts, const FDEPState &fdepstate ) const ;
00048 virtual stresstensor d2Fodsdq(const stresstensor &sts, const FDEPState &fdepstate ) const;
00049 virtual tensor d2Fodsda(const stresstensor &sts, const FDEPState &fdepstate ) const;
00050
00051 virtual double d2Fodqdq(const stresstensor &sts, const FDEPState &fdepstate ) const;
00052 virtual stresstensor d2Fodqda(const stresstensor &sts, const FDEPState &fdepstate ) const;
00053
00054 virtual tensor d2Fodada(const stresstensor &sts, const FDEPState &fdepstate ) const;
00055
00056 virtual void print() = 0;
00057
00058 friend OPS_Stream& operator<< (OPS_Stream& os, const fdFlow & fdfl);
00059 };
00060
00061
00062 #endif