The typedefs and function prototypes for vector-value phase field. This is not meant to be included on its own, only when someone #includes "rheoplast.h".
#define VECTORPHASE_HELP "Vector-value phase field is currently done using the 1998 Kobayashi, Warren\nand Carter formulation. To use it, add option:\n -with_vectorphase\nand control it with proprerties:\n -mparam <m> KWC m parameter [0.25]\n -epsilon <eps> epsilon/dx [5.0]\n -mubar <mb> mubar param in mu=mubar(phi)^muexp [0.01]\n -muexp <me> muexp param in same [4.0]\n -n_general <N0> general rotation symmetry order [4]\n -delta_surface <ds> relative variation in epsilon [0.2]\n -n_surface <Ns> surface rotation symmetry order [4]\n -exp_surface <es> surface energy cosine exponent [3.0]\n -temp_equil <Te> equilibrium temperature [0.0]\n -m_alpha <alpha> m T-dependance parameter [0.9]\n -m_gamma <gamma> m T-dependance parameter [20]\nKinetic growth parameters not yet implemented. Initial condition:\n -nukes <n> number of nucleation sites [5]\n -nuke_theta <th> Theta (degrees) for (all) nuclei [random]\n -nuke_x <x> One nucleus: dimensionless x coord [random]\n -nuke_y <y> One nucleus: dimensionless y coord [random]\nFor simulations with symmetry boundary conditions (instead of periodic),\nnuclei can be planted on the edges or in the interior using:\n -edge_nukes <n> nucleation sites on the edges [0]\n -interior_nukes <n> nucleation sites in the interior [0]\n\nA nice example with the default four-fold symmetry and one grain is:\n\n ./rheoplast -da_grid_x 50 -da_grid_y 50 -explicit_timesteps 1000000 -explicit_monsteps 10000 -with_vectorphase -nukes 3 -contours\n\nor if you wish to use semi-implicit timesteps (explicit is needed to get a\nworkable initial condition for semi-implicit):\n\n ./rheoplast -da_grid_x 50 -da_grid_y 50 -explicit_timesteps 20000 -explicit_monsteps 10000 -ts_dt 0.02 -ts_max_steps 1000 -monsteps 10 -snes_mf -with_vectorphase -nukes 1 -contours\n\n"
typedef struct {...} vectorphasers
| struct | |
| { | |
| PetscScalar eps_dx; | |
| PetscScalar mparam; | |
| PetscScalar mubar; | |
| PetscScalar muexp; | |
| PetscScalar N0; | |
| PetscScalar delta_s; | |
| PetscScalar N_s; | |
| PetscScalar n_s; | |
| PetscScalar T_e; | |
| PetscScalar C; | |
| PetscScalar m_alpha; | |
| PetscScalar m_gamma; | |
| int pvar; | |
| int qvar; | |
| int phivar; | |
| int epsvar; | |
| int tauvar; | |
| int dphidtvar; | |
| } |