Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

elasticityJac.h

Go to the documentation of this file.
00001 
00007 #ifndef __ELASTICITY_JAC_H
00008 #define __ELASTICITY_JAC_H
00009 
00010 //Stuff for the case where the material properties on the coarser grids are
00011 //constructed by averaging the material properties of the immediately finer
00012 //grid 
00013 struct ElasticityData {
00014   unsigned char* bdyArr;
00015   PetscReal mu;
00016   PetscReal lambda;
00017   Mat Jmat_private;
00018   Vec inTmp;
00019   Vec outTmp;
00020 };
00021 
00022 void SetElasticityContexts(ot::DAMG* damg);
00023 void DestroyElasticityContexts(ot::DAMG* damg);
00024 
00025 PetscErrorCode CreateElasticityMat(ot::DAMG damg,Mat *B);
00026 PetscErrorCode ComputeElasticityMat(ot::DAMG damg,Mat J, Mat B);
00027 
00028 PetscErrorCode ElasticityMatMult(Mat, Vec, Vec);
00029 PetscErrorCode ElasticityMatGetDiagonal(Mat, Vec);
00030 PetscErrorCode ElasticityShellMatMult(Mat, Vec, Vec);
00031 PetscErrorCode ElasticityMatDestroy(Mat);
00032 
00033 PetscErrorCode ComputeElasticityRHS(ot::DAMG damg,Vec rhs);
00034 
00035 //Functions required for PC_BlockDiag.
00036 void getDofAndNodeSizeForElasticityMat(Mat J, unsigned int & dof, unsigned int & nodeSize);
00037 
00038 void computeInvBlockDiagEntriesForElasticityMat(Mat J, double **invBlockDiagEntries);
00039 
00040 //Function for using KSP_Shell (will be used at the coarsest grid if not all
00041 //processors are active on the coarsest grid)
00042 void getPrivateMatricesForKSP_Shell_Elas(Mat mat,
00043     Mat *AmatPrivate, Mat *PmatPrivate, MatStructure* pFlag);
00044 
00045 #endif
00046 

Generated on Tue Mar 24 16:13:56 2009 for DENDRO by  doxygen 1.3.9.1