Thinfilm change log: Difference between revisions

From Micro and Nano Mechanics Group
Jump to navigation Jump to search
(added header files)
 
m (updated LocateCell())
 
(3 intermediate revisions by the same user not shown)
Line 24: Line 24:
*Added cellIndex[3] to LocateCell() definition if _THINFILM
*Added cellIndex[3] to LocateCell() definition if _THINFILM
*Added WRITE_NODE_FORCE() if _THINFILM
*Added WRITE_NODE_FORCE() if _THINFILM



===AllSegmentStress.c===
*No longer contained in src in v2.5.1.
*The organization of FMlayer struct has changed. Code to get FMMcell should be:
<blockquote style="background: white; border: 0; padding: 1em; width: 600px;"><pre>
cellID = EncodeFMCellIndex(layer->lDim, cellIndex[0], cellIndex[1], cellIndex[2])
FMMcell = LookupFMCell(layer->cellTable, cellID)
</pre></blockquote>

===AllYoffeStress.c===
*added Sylvie's virtual segment changes.

===Collision.c===
*This code is now a calling function for PredictiveCollision.c or ProximityCollision.c
*Force collison to occur on surface
*Change SURFACE_NODE to THINFILM_SURFACE_NODE

===CrossSlip.c===
*Now a handler function for CrossSlipBCC.c and CrossSlipFCC.c
*Passed thinfilm variables

===CrossSlipBCC.c & CrossSlipFCC.c===
*THESE FUNCTIONS HAVE DRASTICALLY CHANGED IN v2.5.1. THE SECOND LOOP SHOULD PROBABLY BE UPDATED AT SOME POINT.
*Added second loop for surface nodes.
*Declared variables burg[], glidedir[][], and fnode[] because they are no longer part of src in v2.5.1
*Added nodepinned2().
*Need to be passed the thinfilm variables in order to give them to SetOneNodeForce().

===DeltaPlasticStrain===
*Needs to be passed thinfilm variables to give them to DeltaPlasticStrain_BCC.c or DeltaPlasticStrain_FCC.c

===DeltaPlasticStrain_BCC.c & DeltaPlasticStrain_BCC.c===
*Added modifications for _BENDING.

===ForwardEulerIntegrator.c===
*Passed thinfilm variables.

===Initialize.c===
*Added modifications for _STACKINGFAULT.
*Suppressed warnings about free surfaces when using thinfilm.
*Added simVol calculation for thinfilm.

===InputSanity.c===
*Disabled failure if there are free surfaces and not using FMM with thinfilm.

===LocalSegForces.c===
*Added modifications for _STACKINGFAULT.
*Added modifications for _BENDING.
*Added Sylvie's virtual segment treatment.
*Passed thinfilm variables.
*When using FULL_N2_FORCES added thinfilm remote forces.
*Added remote stress contribution from the thinfilm regardless of whether FMM is enabled

===MobilityLaw_BCC_0b.c===
*Constrained thinfilm surface node velocity in the z-direction to be zero.

===MobilityLaw_BCC_0.c===
*Added correction to BTotal for a surface node, because it is simply linked.

===MobilityLaw_BCC_glide.c===
*Added correction to BTotal for a surface node, because it is simply linked.
*Added correction for a thinfilm's normal constraint.

===MobilityLaw_FCC_0.c===
*Constrained thinfilm surface node velocity in the z-direction to be zero.
*Tried to add Laboratory coordinate system rotation (may need checked)

===MobilityLaw_Relax.c===
*This code was significantly changed from v2.3.5 to v2.5.1 in the src (may need checked)
*Constrained thinfilm surface node velocity in the z-direction to be zero.

===NodeForce.c===
*Added modifications for _STACKINGFAULT.
*Added modifications for _BENDING.
*Added Sylvie's virtual segment treatment.
*Included TF.h.
*Passed thinfilm variables.
*Added WRITE_NODE_FORCE statements.
*Called InitSegSigbRem()
*Computed thinfilm's contribution to sigbRem.
*Added a call to LocalVirtualSegForces()
*When FULL_N2_FORCES, Added hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM.
*When FULL_N2_FORCES, added remote stress calculation for thinfilm in SetOneNodeForce().
*When NOT FULL_N2, added a hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM. This one was vectorized in the bulk code.
*Calculate PK force if _THINFILM, even if FMM is not enabled. This is done in the bulk code, but for FEM.
*Added thinfilm image stress to the segment's sigb.

===ParadisStep.c===
*Added thinfilm variables to function definitions.

===Param.c===
*Added modifications for _STACKINGFAULT.
*Initialized thinfilm variables.

===Plot.c===
*Included Param.h and TF.h.
*Added plotting for thinfilm.

===Remesh.c===
*Included TF.h
*Passed thinfilm variables.
*Added call to Thinfilm_Remesh().

===RemeshRule_2.c===
*prevented thinfilm surface node from being removed.

===Topology.c===
*Added modifications for _STACKINGFAULT.
*Included TF.h.
*Passed thinfilm variables.
*Handled combining pinned multinodes at the surface.
*Handled the splitting of surface nodes.
*Changed to THINFILM_SURFACE_NODE

===TrapezoidIntegrator.c===
*Passed thinfilm variables.
*changed the print statement for thinfilm

===SemiInfiniteSegSegForce.c===
*v2.5.1 now has this within the bulk code, but there appears to be some differences from the thinfilm code in v2.3.5.
*v2.5.1 bulk code currently only computes forces on fp3 and fp4. It zeros out forces on fp1 and does not compute fp2. v2.3.5 computed all four.
*Currently call the 2.3.5 functions SemiInfiniteSegSegForce2 and SpecialSemiInfiniteSegSegForce2.

===Compute.c===
*Changed to SemiInfiniteSegSegForce2.

===Util.c===
*Added function WRITE_NODE_FORCE.
*Had LocateCell return cellIndex when using thinfilm.
*Changing LocateCell necessitates adding Util.h to the thinfilm libraries.




===ABCoeff.c===
*Unique to thinfilm
*Added Sylvie's virtual segment treatment.


===Fourier_transforms.c===
*Unique to thinfilm
*Added Sylvie's virtual segment treatment.

===TF_Main.c===
*Unique to thinfilm
*Added Sylvie's virtual segment treatment.

===TF_Util.c===
*Unique to thinfilm
*Added Sylvie's virtual segment treatment.

Latest revision as of 21:20, 16 September 2011

Force.h

  • Used to be a part of ParadisProto.h in previous versions of the code.
  • Added thinfilm variables to function definitions.

Home.h

  • Identical to original code. However, it is needed in the thinfilm Include directory for the code to compile correctly.

Node.h

  • Declared THINFILM_SURFACE_NODE = 6

Param.h

  • Added thinfilm variable declarations.
  • Added _STACKINGFAULT variable.

ParadisProto.h

  • Added thinfilm variables to function definitions.
  • Included TF.h.
  • Added SemiInfiniteSegSegForce2 because of the differences between the SemiInfiniteSegSegForce in v2.3.5 cylinder code and the bulk code for v2.5.1

Topology.h

  • Added thinfilm variables to function definitions.

Util.h

  • Added cellIndex[3] to LocateCell() definition if _THINFILM
  • Added WRITE_NODE_FORCE() if _THINFILM


AllSegmentStress.c

  • No longer contained in src in v2.5.1.
  • The organization of FMlayer struct has changed. Code to get FMMcell should be:
cellID = EncodeFMCellIndex(layer->lDim, cellIndex[0], cellIndex[1], cellIndex[2])
FMMcell = LookupFMCell(layer->cellTable, cellID)

AllYoffeStress.c

  • added Sylvie's virtual segment changes.

Collision.c

  • This code is now a calling function for PredictiveCollision.c or ProximityCollision.c
  • Force collison to occur on surface
  • Change SURFACE_NODE to THINFILM_SURFACE_NODE

CrossSlip.c

  • Now a handler function for CrossSlipBCC.c and CrossSlipFCC.c
  • Passed thinfilm variables

CrossSlipBCC.c & CrossSlipFCC.c

  • THESE FUNCTIONS HAVE DRASTICALLY CHANGED IN v2.5.1. THE SECOND LOOP SHOULD PROBABLY BE UPDATED AT SOME POINT.
  • Added second loop for surface nodes.
  • Declared variables burg[], glidedir[][], and fnode[] because they are no longer part of src in v2.5.1
  • Added nodepinned2().
  • Need to be passed the thinfilm variables in order to give them to SetOneNodeForce().

DeltaPlasticStrain

  • Needs to be passed thinfilm variables to give them to DeltaPlasticStrain_BCC.c or DeltaPlasticStrain_FCC.c

DeltaPlasticStrain_BCC.c & DeltaPlasticStrain_BCC.c

  • Added modifications for _BENDING.

ForwardEulerIntegrator.c

  • Passed thinfilm variables.

Initialize.c

  • Added modifications for _STACKINGFAULT.
  • Suppressed warnings about free surfaces when using thinfilm.
  • Added simVol calculation for thinfilm.

InputSanity.c

  • Disabled failure if there are free surfaces and not using FMM with thinfilm.

LocalSegForces.c

  • Added modifications for _STACKINGFAULT.
  • Added modifications for _BENDING.
  • Added Sylvie's virtual segment treatment.
  • Passed thinfilm variables.
  • When using FULL_N2_FORCES added thinfilm remote forces.
  • Added remote stress contribution from the thinfilm regardless of whether FMM is enabled

MobilityLaw_BCC_0b.c

  • Constrained thinfilm surface node velocity in the z-direction to be zero.

MobilityLaw_BCC_0.c

  • Added correction to BTotal for a surface node, because it is simply linked.

MobilityLaw_BCC_glide.c

  • Added correction to BTotal for a surface node, because it is simply linked.
  • Added correction for a thinfilm's normal constraint.

MobilityLaw_FCC_0.c

  • Constrained thinfilm surface node velocity in the z-direction to be zero.
  • Tried to add Laboratory coordinate system rotation (may need checked)

MobilityLaw_Relax.c

  • This code was significantly changed from v2.3.5 to v2.5.1 in the src (may need checked)
  • Constrained thinfilm surface node velocity in the z-direction to be zero.

NodeForce.c

  • Added modifications for _STACKINGFAULT.
  • Added modifications for _BENDING.
  • Added Sylvie's virtual segment treatment.
  • Included TF.h.
  • Passed thinfilm variables.
  • Added WRITE_NODE_FORCE statements.
  • Called InitSegSigbRem()
  • Computed thinfilm's contribution to sigbRem.
  • Added a call to LocalVirtualSegForces()
  • When FULL_N2_FORCES, Added hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM.
  • When FULL_N2_FORCES, added remote stress calculation for thinfilm in SetOneNodeForce().
  • When NOT FULL_N2, added a hook to zero sigbRem for adding in Yoffe stress. This is already done in the bulk code, but only with FEM. This one was vectorized in the bulk code.
  • Calculate PK force if _THINFILM, even if FMM is not enabled. This is done in the bulk code, but for FEM.
  • Added thinfilm image stress to the segment's sigb.

ParadisStep.c

  • Added thinfilm variables to function definitions.

Param.c

  • Added modifications for _STACKINGFAULT.
  • Initialized thinfilm variables.

Plot.c

  • Included Param.h and TF.h.
  • Added plotting for thinfilm.

Remesh.c

  • Included TF.h
  • Passed thinfilm variables.
  • Added call to Thinfilm_Remesh().

RemeshRule_2.c

  • prevented thinfilm surface node from being removed.

Topology.c

  • Added modifications for _STACKINGFAULT.
  • Included TF.h.
  • Passed thinfilm variables.
  • Handled combining pinned multinodes at the surface.
  • Handled the splitting of surface nodes.
  • Changed to THINFILM_SURFACE_NODE

TrapezoidIntegrator.c

  • Passed thinfilm variables.
  • changed the print statement for thinfilm

SemiInfiniteSegSegForce.c

  • v2.5.1 now has this within the bulk code, but there appears to be some differences from the thinfilm code in v2.3.5.
  • v2.5.1 bulk code currently only computes forces on fp3 and fp4. It zeros out forces on fp1 and does not compute fp2. v2.3.5 computed all four.
  • Currently call the 2.3.5 functions SemiInfiniteSegSegForce2 and SpecialSemiInfiniteSegSegForce2.

Compute.c

  • Changed to SemiInfiniteSegSegForce2.

Util.c

  • Added function WRITE_NODE_FORCE.
  • Had LocateCell return cellIndex when using thinfilm.
  • Changing LocateCell necessitates adding Util.h to the thinfilm libraries.



ABCoeff.c

  • Unique to thinfilm
  • Added Sylvie's virtual segment treatment.


Fourier_transforms.c

  • Unique to thinfilm
  • Added Sylvie's virtual segment treatment.

TF_Main.c

  • Unique to thinfilm
  • Added Sylvie's virtual segment treatment.

TF_Util.c

  • Unique to thinfilm
  • Added Sylvie's virtual segment treatment.