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
00029
00030
00031
00032
00033
00034
00035 #ifndef StaticDomainDecompositionAnalysis_h
00036 #define StaticDomainDecompositionAnalysis_h
00037
00038 #ifndef _bool_h
00039 #include <bool.h>
00040 #endif
00041
00042 #include <DomainDecompositionAnalysis.h>
00043 #include <Matrix.h>
00044 #include <Vector.h>
00045 #include <MovableObject.h>
00046
00047 class ConstraintHandler;
00048 class DOF_Numberer;
00049 class AnalysisModel;
00050 class StaticIntegrator;
00051 class ConvergenceTest;
00052 class LinearSOE;
00053 class LinearSolver;
00054 class EquiSolnAlgo;
00055 class Subdomain;
00056 class ConvergenceTest;
00057
00058 class StaticDomainDecompositionAnalysis: public DomainDecompositionAnalysis
00059 {
00060 public:
00061 StaticDomainDecompositionAnalysis(Subdomain &theDomain);
00062 StaticDomainDecompositionAnalysis(Subdomain &theDomain,
00063 ConstraintHandler &theHandler,
00064 DOF_Numberer &theNumberer,
00065 AnalysisModel &theModel,
00066 EquiSolnAlgo &theSolnAlgo,
00067 LinearSOE &theSOE,
00068 StaticIntegrator &theIntegrator,
00069 ConvergenceTest *theTest,
00070 bool setLinks = true);
00071
00072 ~StaticDomainDecompositionAnalysis();
00073 void clearAll(void);
00074 int initialize(void);
00075 int domainChanged(void);
00076
00077
00078 int analyze(double dT);
00079 bool doesIndependentAnalysis(void);
00080
00081
00082
00083 int getNumExternalEqn(void);
00084 int getNumInternalEqn(void);
00085 int newStep(double dT);
00086 int computeInternalResponse(void);
00087 int formTangent(void);
00088 int formResidual(void);
00089 int formTangVectProduct(Vector &force);
00090 const Matrix &getTangent(void);
00091 const Vector &getResidual(void);
00092 const Vector &getTangVectProduct(void);
00093
00094
00095 int setAlgorithm(EquiSolnAlgo &theAlgorithm);
00096 int setIntegrator(IncrementalIntegrator &theIntegrator);
00097 int setLinearSOE(LinearSOE &theSOE);
00098 int setConvergenceTest(ConvergenceTest &theTest);
00099
00100
00101 int sendSelf(int commitTag, Channel &theChannel);
00102 int recvSelf(int commitTag, Channel &theChannel,
00103 FEM_ObjectBroker &theBroker);
00104
00105 protected:
00106
00107 private:
00108 ConstraintHandler *theConstraintHandler;
00109 DOF_Numberer *theDOF_Numberer;
00110 AnalysisModel *theAnalysisModel;
00111 EquiSolnAlgo *theAlgorithm;
00112 LinearSOE *theSOE;
00113 StaticIntegrator *theIntegrator;
00114 ConvergenceTest *theTest;
00115 int domainStamp;
00116 };
00117
00118 #endif
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129