PARADISCYL:Cylinder-Algorithm: Difference between revisions

From Micro and Nano Mechanics Group
Jump to navigation Jump to search
(Created page with '<P ALIGN="CENTER"> <FONT SIZE="+3" color="darkred"><STRONG> Cylinder code algorithm </STRONG></font></P> <DIV> <P ALIGN="CENTER"><STRONG>ill Ryu and Wei Cai</STRONG></P> </DIV> …')
 
No edit summary
Line 1: Line 1:
<P ALIGN="CENTER">
<P ALIGN="CENTER">
<FONT SIZE="+3" color="darkred"><STRONG>
<FONT SIZE="+3" color="darkred"><STRONG>
Cylinder code algorithm </STRONG></font></P>
Cylinder Code Algorithm </STRONG></font></P>
<DIV>
<DIV>
<P ALIGN="CENTER"><STRONG>ill Ryu and Wei Cai</STRONG></P>
<P ALIGN="CENTER"><STRONG>ill Ryu and Wei Cai</STRONG></P>
</DIV>
</DIV>


This wiki page describes the ParaDiS Cylinder code v.2.5.1. This version of the Cylinder code is created by a ''translation'' from the ParaDiS ThinFilm code v.2.5.1, with subsequent modifications. In this wiki page, we only describe the difference between the Cylinder code and the ''translated'' ThinFilm code.
It describes how to remove tiny dislocation segment in cylinder code.

<HR>

==List of Files==

The following is a list of all files modified manually after the ''translation''.

1. AllSegmentStress.c

A new function AllSegmentStress_no_cell_test1() is added, which computes the stress field of a
infinite straight dislocation (analytic expression) for Test Case 1 only. This function is activated
when CYL_TEST1 is defined (in the makefile).

Function AllSegmentStress_no_cell() is modified to account for periodic images in Z direction.
A local variable NimgPBC is hard coded. For each dislocation segment, NimgPBC number of its images
are included in the stress calculation. '''We should move this to Param.h.'''

Macros (#ifdef 's) are added to make the Cylinder code use FULL_N2_FORCES when _CYL_TEST23 is defined.

2. Collision.c
- make flag to turn on/off the collision
3. cylinder.c
- Correct the sign of the image stress
4. Cylinder_Remesh.c
- SURFACE_NODE -> CYLINDER_SURFACE_NODE
- Remove surface debris
-[ProjectSurfaceNodes] : if surface nodes move inside, it need to be projected on the surface
5. gridstress.c
- remove R=1 constraint
6. Initialize.c, LocalSegForce.c, NodeForce.c
- make flags for CYL_TEST23
: #if (!defined FULL_N2_FORCES) | (!defined _CYL_TEST23)
7. SplitSurfaceNodes.c PredictiveCollision.c ProximityCollision.c
- For the surface node split(Not yet)
8. Remesh. c
- SURFACE_NODE -> CYLINDER_SURFACE_NODE
9. MobilityLaw_BCC_glide.c
- Modify mobility for the surface node(keeping them on the surface/ slip plane)
- Surface Cross Slip
- Surface node mobility correction
- etc



==Cylinder Code Algorithm==

Revision as of 19:16, 2 December 2011

Cylinder Code Algorithm

ill Ryu and Wei Cai

This wiki page describes the ParaDiS Cylinder code v.2.5.1. This version of the Cylinder code is created by a translation from the ParaDiS ThinFilm code v.2.5.1, with subsequent modifications. In this wiki page, we only describe the difference between the Cylinder code and the translated ThinFilm code.


List of Files

The following is a list of all files modified manually after the translation.

1. AllSegmentStress.c

A new function AllSegmentStress_no_cell_test1() is added, which computes the stress field of a
infinite straight dislocation (analytic expression) for Test Case 1 only.  This function is activated
when CYL_TEST1 is defined (in the makefile).
Function AllSegmentStress_no_cell() is modified to account for periodic images in Z direction.
A local variable NimgPBC is hard coded.  For each dislocation segment, NimgPBC number of its images
are included in the stress calculation.  We should move this to Param.h. 
Macros (#ifdef 's) are added to make the Cylinder code use FULL_N2_FORCES when _CYL_TEST23 is defined. 

2. Collision.c

- make flag to turn on/off the collision

3. cylinder.c

- Correct the sign of the image stress

4. Cylinder_Remesh.c

- SURFACE_NODE -> CYLINDER_SURFACE_NODE
- Remove surface debris
-[ProjectSurfaceNodes] : if surface nodes move inside, it need to be projected on the surface

5. gridstress.c - remove R=1 constraint 6. Initialize.c, LocalSegForce.c, NodeForce.c

-  make flags for CYL_TEST23
     :  #if (!defined FULL_N2_FORCES) | (!defined _CYL_TEST23)  

7. SplitSurfaceNodes.c PredictiveCollision.c ProximityCollision.c

- For the surface node split(Not yet)

8. Remesh. c - SURFACE_NODE -> CYLINDER_SURFACE_NODE 9. MobilityLaw_BCC_glide.c - Modify mobility for the surface node(keeping them on the surface/ slip plane) - Surface Cross Slip - Surface node mobility correction - etc


Cylinder Code Algorithm