#include <LSMDD_PhysicsStrategy.h>
Public Member Functions | |
Empty constructor and destructor | |
LSMDD_PhysicsStrategy () | |
virtual | ~LSMDD_PhysicsStrategy () |
Methods for accessing dislocation line information | |
virtual int | numberOfDislocationLines () const =0 |
virtual const BurgersVector & | getBurgersVector (const int dislocation_line_handle) const =0 |
virtual void | getBoundaryConditions (IntVector< 3 > &lower_bc, IntVector< 3 > &upper_bc, const int dislocation_line_handle, const LEVEL_SET_FCN_TYPE level_set_fcn) const |
Methods for setting initial and boundary conditions | |
These methods set the initial and boundary conditions for the level set functions used to represent dislocation lines. | |
virtual void | initializeLevelSetFunctionsOnPatch (Patch< 3 > &patch, const double time, const int phi_handle, const int psi_handle)=0 |
virtual void | setLevelSetFunctionBoundaryConditions (Patch< 3 > &patch, const double time, const int phi_handle, const int psi_handle, const IntVector< 3 > &ghost_width_to_fill) |
Methods for computing forces and velocities on dislocation lines | |
virtual void | computeForceOnDislocationLineOnPatch (Patch< 3 > &patch, const int force_handle, const int stress_field_handle, const vector< int > &tangent_vector_handles, const int phi_handle, const int psi_handle, const int line_handle, const double time, const LSMDD_Parameters &lsmdd_params)=0 |
virtual void | computeVelocityForDislocationLineOnPatch (Patch< 3 > &patch, const int velocity_handle, const int force_handle, const vector< int > &tangent_vector_handles, const int distance_handle, const int phi_handle, const int psi_handle, const int line_handle, const double time, const LSMDD_Parameters &lsmdd_params)=0 |
Methods related to auxiliary stress fields | |
virtual bool | providesAuxiliaryStressField () const |
virtual void | computeAuxiliaryStressFieldOnPatch (Patch< 3 > &patch, const int auxiliary_stress_field_handle, const int dislocation_stress_field_handle, const double time, const LSMDD_Parameters &lsmdd_params) |
Methods related to time integration | |
virtual double | computeStableDtOnPatch (Patch< 3 > &patch) |
Methods for pre/postprocessing data during time advance of | |
dislocations
These methods are used to preprocess data before advancing dislocations in time or postprocessing data after the dislocations have been advanced in time. | |
virtual void | preprocessAdvanceDislocations (PatchHierarchy< 3 > &hierarchy, const int phi_handle, const int psi_handle, const LSMDD_Parameters &lsmdd_params, const double time) |
virtual void | postprocessAdvanceDislocations (PatchHierarchy< 3 > &hierarchy, const int phi_handle, const int psi_handle, const LSMDD_Parameters &lsmdd_params, const double time) |
|
|
|
|
|
computeAuxiliaryStressFieldOnPatch() computes any auxiliary stress field that should be added to the stress field due to the dislocations. Arguments:
Return value: none NOTES:
|
|
computeForceOnDislocationLineOnPatch() computes the force on the specified dislocation line on a single patch. Arguments:
Return value: none NOTES:
|
|
computeStableDtOnPatch() should return a user-specified stable time step for advancing the level set functions associated with the specified dislocation line. Arguments:
Return value: user-specified time step size NOTES:
|
|
computeVelocityForDislocationLineOnPatch() computes the velocity for the specified dislocation line on a single patch. Arguments:
Return value: none NOTES:
|
|
getBoundaryConditions() should set the boundary conditions for for the specified dislocation line and level set function. Arguments:
Return value: none NOTES:
For more information about these boundary conditions, see the BoundaryConditionModule class in LSMLIB. By default, the boundary condition type is set to NONE/PERIODIC, which means that no boundary conditions are imposed at any non-periodic boundary of the computational domain and periodic boundary conditions are imposed at periodic boundaries.
|
|
getBurgersVector() should return the Burgers vector of the specified dislocation line. Arguments:
Return value: Burgers vector NOTES:
|
|
initializeLevelSetFunctionsOnPatch() should set the initial values of the level set functions associated with ALL of the dislocation lines. Arguments:
Return value: none |
|
numberOfDislocationLines() should return the number of distinct dislocation lines in the simulation. Algorithmically, dislocation lines are considered distinct if they are represented by a different pair of level set functions. Arguments: none Return value: number of distinct dislocation lines |
|
postprocessAdvanceDislocations() may be used to postprocess data after dislocations have been advanced in time. Arguments:
Return value: none NOTES:
|
|
preprocessAdvanceDislocations() may be used to preprocess data before advancing dislocations in time. Arguments:
Return value: none NOTES:
|
|
providesAuxiliaryStressField() returns true if the LSMDD_PhysicsStrategy provides an auxiliary stress field. NOTES:
Arguments: none Return value: true if class provides an external stress field; false otherwise NOTES: |
|
setLevelSetFunctionBoundaryConditions() is intended to allow the user to impose custom/arbitrary boundary conditions for the level set functions. It should set the boundary conditions for the level set functions associated with ALL of the dislocation lines. Arguments:
Return value: none NOTES:
|