next up previous contents
Next: Simulation commands Up: Model definition commands Previous: systemInRegion

model

A model is the aggregation of all of the systems and fixed (dirichlet) boundary conditions that implements a multi-region system of PDEs. A model provides the coupling of the multi-region physics into a single system of nonlinear equations. A system provides the coupling within a single region.

model -systems systemList
[ -fixedBC dirichletList ]
[ -continuityConstraints constraintsList ]
[ -atStartOfEachTimeStep script ]
[ -atEndOfEachTimeStep script ]
[ -afterConverged script ]
[ -preSolve script]
[ -postSolve script ]

Each item in a dirichletList is list containing a field name and a region name. The following code segment will provide a dirichlet boundary condition for vacancies and interstitials at a silicon/oxide interface.

$model -fixedBC [list \
    [list VacancyInSilicon {Oxide/Silicon}] \
    [list InterstitialInSilicon {Oxide/Silicon}] ]

Each item in a constraintsList is a list containing two field names and an interface region. This makes is possible to enforce continuity of a field across an interface, even if the mesh represents the fields as discontinuous across an interface as the present structure files do. The following code segment enforces continuity in Potential across the silicon/oxide interface.

$model -continuityConstraints [list \
    [list PotentialInSilicon PotentialInOxide {Oxide/Silicon}] ]

-atStartOfEachTimeStep/-atEndOfEachTimeStep/-afterConverged allow the user to specify a TCL script that gets executed during each time step or after the nonlinear solve has converged. The -atStartOfEachTimeStep script is executed before nonlinear solve is attempted with a candidate tex2html_wrap_inline2726 (TIME_STEP). -atEndOfEachTimeStep is executed at the end of a time step only if the nonlinear solves were successful. -afterConverged is executed before returning from the nonlinear solver if it succeeded.

The script can checkpoint solutions, modify TCL variables (including TIME_STEP), and update fields. The TCL variables SOLVE_TIME and TIME_STEP are available (they must tagged as global within a TCL proc). SOLVE_TIME is the start time of the current time step. TIME_STEP is tex2html_wrap_inline2726 for this time step.

The user may also call the model command with -getUnknown equationNumber or -getUnknowns to get the value of a single unknown or of all of the unknowns. Since these return values a strings via the TCL interpreter, they are inefficient. They are primarily used for testing the numerical algorithms with very small examples where the mapping of unknowns to equation numbers is known.

-preSolve and -postSolve allow the user to specify a TCL script that gets executed before or after the the solution command. These are intended to be used for validity checking (e.g. to ensure that necessary fields are actually part of the domain), activation, etc.


next up previous contents
Next: Simulation commands Up: Model definition commands Previous: systemInRegion

Dan Yergeau
Wed Aug 20 14:01:54 PDT 1997