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 #ifndef ParallelMaterial_h
00027 #define ParallelMaterial_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #include <UniaxialMaterial.h>
00040
00041 class ParallelMaterial : public UniaxialMaterial
00042 {
00043 public:
00044 ParallelMaterial(int tag,
00045 int numMaterial,
00046 UniaxialMaterial **theMaterials);
00047 ParallelMaterial();
00048 ~ParallelMaterial();
00049
00050 const char *getClassType(void) const {return "ParallelMaterial";};
00051
00052 int setTrialStrain(double strain, double strainRate = 0.0);
00053 double getStrain(void);
00054 double getStrainRate(void);
00055 double getStress(void);
00056 double getTangent(void);
00057 double getDampTangent(void);
00058 double getInitialTangent(void);
00059
00060 int commitState(void);
00061 int revertToLastCommit(void);
00062 int revertToStart(void);
00063
00064 UniaxialMaterial *getCopy(void);
00065
00066 int sendSelf(int commitTag, Channel &theChannel);
00067 int recvSelf(int commitTag, Channel &theChannel,
00068 FEM_ObjectBroker &theBroker);
00069
00070 void Print(OPS_Stream &s, int flag =0);
00071
00072 Response *setResponse(const char **argv, int argc,
00073 Information &matInformation,
00074 OPS_Stream &theOutputStream);
00075 int getResponse(int responseID, Information &matInformation);
00076
00077 protected:
00078
00079 private:
00080 double trialStrain;
00081 double trialStrainRate;
00082 int numMaterials;
00083 UniaxialMaterial **theModels;
00084 };
00085
00086
00087 #endif
00088