Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

DislocationReactionModule.h

Go to the documentation of this file.
00001 /*
00002  * File:        DislocationReactionModule.h
00003  * Copyright:   (c) 2005-2007 Princeton University
00004  * Author(s):   S.S. Jerry Quek, Kevin T. Chu
00005  * Revision:    $Revision:  $
00006  * Modified:    $Date: $
00007  * Description: Header file for DislocationReactionModule
00008  */
00009 
00010 #ifndef included_DislocationReactionModule_h
00011 #define included_DislocationReactionModule_h
00012 
00058 // System Headers
00059 #include <string>
00060 
00061 // SAMRAI Headers
00062 #include "SAMRAI_config.h"
00063 #include "PatchHierarchy.h"
00064 #include "tbox/Array.h"
00065  
00066 // LSMDD Headers
00067 #include "LSMDD_config.h"
00068 #include "BurgersVector.h"
00069 #include "LSMDD_Parameters.h"
00070 
00071 // namespaces
00072 using namespace SAMRAI;
00073 using namespace hier;
00074 using namespace tbox;
00075 
00076 
00077 /******************************************************************
00078  *
00079  * DislocationReactionModule Class Definition
00080  *
00081  ******************************************************************/
00082 
00083 namespace LSMDD {
00084 
00085 class DislocationReactionModule
00086 {
00087 public:
00088 
00111   static void setupReactionData(int& rxn_status_handle, 
00112                                 int& rxn_line_number_handle);
00113 
00137   static void allocateReactionData(PatchHierarchy<3>& hierarchy,
00138                                    int& rxn_status_handle, 
00139                                    int& rxn_line_number_handle);
00140 
00164   static void deallocateReactionData(PatchHierarchy<3>& hierarchy,
00165                                      int& rxn_status_handle, 
00166                                      int& rxn_line_number_handle);
00167 
00234   static int computeForceOnDislocationLineWithReactions(
00235     double &force_x,
00236     double &force_y,
00237     double &force_z,
00238     int &rxn_line_num,
00239     double **phi_data,
00240     double **psi_data,
00241     double *tangent_vectors_x,
00242     double *tangent_vectors_y,
00243     double *tangent_vectors_z,
00244     Array< BurgersVector >& burgers_vectors,
00245     double sigma11,
00246     double sigma22,
00247     double sigma33,
00248     double sigma23,
00249     double sigma31,
00250     double sigma12,
00251     int *level_set_fcn_box_dims,
00252     int *level_set_fcn_ghostcell_width,
00253     int idx_x,
00254     int idx_y,
00255     int idx_z,
00256     const double *X,
00257     const double *dX,
00258     const int line_handle,
00259     const LSMDD_Parameters& lsmdd_params,
00260     double interaction_force_strength);
00261 
00262 
00263 protected:
00264 
00335   static int checkForReaction(
00336     int& rxn_line_num,
00337     double& relative_position_x,
00338     double& relative_position_y,
00339     double& relative_position_z,
00340     double **phi_data,
00341     double **psi_data,
00342     double *tangent_vectors_x,
00343     double *tangent_vectors_y,
00344     double *tangent_vectors_z,
00345     Array< BurgersVector >& burgers_vectors,
00346     int *level_set_fcn_box_dims,
00347     int *level_set_fcn_ghostcell_width,
00348     int idx_x,
00349     int idx_y,
00350     int idx_z,
00351     const double *X,
00352     const double *dX,
00353     const int line_handle,
00354     const LSMDD_Parameters& lsmdd_params);
00355 
00356 
00357 private:
00358 
00359   /*
00360    * Private default constructor to prevent use.
00361    *
00362    * Arguments:  none
00363    *
00364    */
00365   DislocationReactionModule(){}
00366 
00367   /* 
00368    * Private copy constructor to prevent use.
00369    * 
00370    * Arguments:
00371    *  - rhs (in):  DislocationReactionModule object to copy
00372    *
00373    */
00374   DislocationReactionModule(const DislocationReactionModule& rhs){}
00375   
00376   /* 
00377    * Private assignment operator to prevent use.
00378    * 
00379    * Arguments:
00380    *  - rhs (in):   DislocationReactionModule object to copy
00381    * 
00382    * Return value:  *this
00383    *
00384    */
00385   const DislocationReactionModule& operator=(
00386     const DislocationReactionModule& rhs){ return *this; }
00387 
00388 };
00389 
00390 } // end LSMDD namespace
00391 
00392 #endif

Generated on Tue Aug 7 15:43:41 2007 for LSMDD by doxygen 1.3.4