ParaDiS Aniso Code Manuals: Difference between revisions

From Micro and Nano Mechanics Group
Jump to navigation Jump to search
Line 6: Line 6:




= Files in the aniso code =
=Aniso code in ParaDiS=
==Sylvie Aubry Dec 11 2009==


===Flow chart of the aniso code===
The aniso code is a part of ParaDiSv2.2.


Before starting using the aniso code, the user decides if he/she wants to use the tables or not and if he/she wants to use the Voigt or the Reuss averages for mu and nu.
ANI_Main.c is a copy of Main.c. On top of regular ParaDiS routines, it includes calls to specific anisotropic routines such as


To use the tables, turn on DEFS += D_TABLES in the makefile.
To create the table files, set QSBMETHOD = 1 in tabulate.c.
ANI_Util.c
To read the table, make sure they are located in the inputs directory.
This file contains ANI_Init, where specific anisotropic variables are defined such as C12, C44, C[i,j,k,l], Q, S, B.


To set the mu and nu variables, set #define VOIGT and #define REUSS variables in ANI_Util.c
tabulate.c
This file either create Q S B tables or read from files called Qtable.dat, Stable.dat and Btable.dat. To create the tables files, turn the variable
QSBMETHOD by setting it to 1, to read from existing tables files, set the variable to 0.


ANI_Main
NodeForce.c which is called in ParadisStep.c. It implements the anisotropic version of the self-force.
defines the directory where files Qtable.dat, Stable.dat and Rtable.dat will be created or read.
define the aniso0 structure
calls ANI_Init in ANI_Utils.





ANI_Init
Other files modifying the current ParaDiD version are:

initialize the aniso0 structure.
. define C, eps

. define mu and nu. User can choose between the Voigt or the Reuss averages.

. calls the routine that defines Q, S, B. Uses file QSBMatrices.c

. user can choose to read in tables (QSBMETHOD = 1) in tabulate.c or not.


Param.c & Param.h
. defines variables specific to aniso code: C12, C44, Cpr

NodeForce.c
When the ANISOTROPIC flag is on, use anisotropic SelfForce.
The SeflForce routine calls QSBMatrices.c routines to get the QSB matrices.

LocalSegForces.c
LocalSegForces.c
When the ANISOTROPIC flag is on, use anisotropic SegSegForces.
Forces and
This routine calls ComputeANIForces located in Stress.c.
<math>\sigma \cdot b </math>
are computed using anisotropic routines and not regular ParaDiS ones.


Stress.c
This file calls ANI_Stress which in turns calls the Willis-Steed stress calculations and also SelfForceSPF, which are specific anisotropic self-forces.
ComputeANIForces.c calls the ANI_WillisSteeds function also located in Stress.c.
ANI_WillisSteeds decide whether to use the regular definition or the collinear one.


That's it!
Param.c that contains all variables specific to the anisotropic code.

Revision as of 18:42, 11 December 2009

DDAniso

Sylvie Aubry (11/14/08) - Updated 12/11/09

This code is being developed in collaboration with Steve Fitzgerald at Culham Science Centre, Abingdon, UK.


Aniso code in ParaDiS

Sylvie Aubry Dec 11 2009

Flow chart of the aniso code

Before starting using the aniso code, the user decides if he/she wants to use the tables or not and if he/she wants to use the Voigt or the Reuss averages for mu and nu.

To use the tables, turn on DEFS += D_TABLES in the makefile. To create the table files, set QSBMETHOD = 1 in tabulate.c. To read the table, make sure they are located in the inputs directory.

To set the mu and nu variables, set #define VOIGT and #define REUSS variables in ANI_Util.c

ANI_Main defines the directory where files Qtable.dat, Stable.dat and Rtable.dat will be created or read. define the aniso0 structure calls ANI_Init in ANI_Utils.


ANI_Init

initialize the aniso0 structure. . define C, eps

. define mu and nu. User can choose between the Voigt or the Reuss averages.

. calls the routine that defines Q, S, B. Uses file QSBMatrices.c

. user can choose to read in tables (QSBMETHOD = 1) in tabulate.c or not.


Param.c & Param.h . defines variables specific to aniso code: C12, C44, Cpr

NodeForce.c When the ANISOTROPIC flag is on, use anisotropic SelfForce. The SeflForce routine calls QSBMatrices.c routines to get the QSB matrices.

LocalSegForces.c When the ANISOTROPIC flag is on, use anisotropic SegSegForces. This routine calls ComputeANIForces located in Stress.c.

Stress.c ComputeANIForces.c calls the ANI_WillisSteeds function also located in Stress.c. ANI_WillisSteeds decide whether to use the regular definition or the collinear one.

That's it!