00001 /* 00002 * File: ElasticStressStrategy.h 00003 * Copyright: (c) 2005-2007 Princeton University 00004 * Author(s): Kevin T. Chu 00005 * Revision: $Revision: 379 $ 00006 * Modified: $Date: 2007-08-07 10:02:34 -0400 (Tue, 07 Aug 2007) $ 00007 * Description: Header file for the ElasticStressStrategy class 00008 */ 00009 00010 #ifndef included_ElasticStressStrategy_h 00011 #define included_ElasticStressStrategy_h 00012 00023 // System Headers 00024 #include <ostream> 00025 #include <vector> 00026 00027 // SAMRAI Headers 00028 #include "SAMRAI_config.h" 00029 00030 // LSMDD Headers 00031 #include "LSMDD_config.h" 00032 #include "BurgersVector.h" 00033 #include "LSMDD_Parameters.h" 00034 00035 00036 /****************************************************************** 00037 * 00038 * ElasticStressStrategy Class Definition 00039 * 00040 ******************************************************************/ 00041 00042 namespace LSMDD { 00043 00044 class ElasticStressStrategy 00045 { 00046 public: 00047 00049 00056 ElasticStressStrategy(){} 00057 00058 virtual ~ElasticStressStrategy(){} 00059 00061 00062 00064 00083 virtual int getStressFieldHandle() = 0; 00084 00086 00087 00089 00109 virtual void setStressFieldToZero() = 0; 00110 00131 virtual void addStressFieldForDislocationLine( 00132 const int dislocation_line_field_handle, 00133 const BurgersVector& burgers_vector, 00134 const LSMDD_Parameters& lsmdd_params) = 0; 00135 00153 virtual void addAuxiliaryStressField( 00154 const int auxiliary_stress_field_handle, 00155 const LSMDD_Parameters& lsmdd_params) = 0; 00156 00177 virtual void addAuxiliaryStressFieldComponent( 00178 const int auxiliary_stress_field_handle, 00179 const LSMDD_Parameters& lsmdd_params, 00180 const int component) = 0; 00181 00183 00184 00186 00207 virtual void printClassData(ostream& os) const = 0; 00208 00210 }; 00211 00212 } // end LSMDD namespace 00213 00214 #endif 00215