# Diff of /trunk/doc/user/Models.tex

revision 2432 by gross, Wed May 20 06:06:20 2009 UTC revision 2433 by gross, Wed May 20 08:43:43 2009 UTC
533
534  \subsection{Functions}  \subsection{Functions}
535
#=============================================================================
536  \begin{classdesc}{IncompressibleIsotropicFlowCartesian}{  \begin{classdesc}{IncompressibleIsotropicFlowCartesian}{
537  domain  domain
538  \optional{, stress=0  \optional{, stress=0
# Line 542  domain Line 541  domain
541  \optional{, t=0  \optional{, t=0
542  \optional{, numMaterials=1  \optional{, numMaterials=1
543  \optional{, verbose=True}}}}}}}  \optional{, verbose=True}}}}}}}
544  opens an incompressible, isotropic flow problem in Cartesian cooridninates.  opens an incompressible, isotropic flow problem in Cartesian cooridninates
545    on the domain \var{domain}.
546  \var{stress},  \var{stress},
547  \var{v},  \var{v},
548  \var{p}, and  \var{p}, and
# Line 552  model. Some progress information are pri Line 552  model. Some progress information are pri
552  \True.  \True.
553  \end{classdesc}  \end{classdesc}
554
555   setExternals(self, F=None, f=None, fixed_v_mask=None, v_boundary=None):  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getDomain}{}
556  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setExternals}{\optional{F=None, \optional{f=None, \optional{fixed_v_mask=None, \optional{v_boundary=None}}}}}  returns the domain.
557  assigns values to external forces and boundary conditions. Between two calls only variables with a new values need to be set.  \end{methoddesc}
558
559  In any call all values must be set.  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getTime}{}
560  \var{f} defines the external force $f$, \var{eta} the viscosity $\eta$,  Returns current time.
561  \var{surface_stress} the surface stress $s$ and \var{stress} the initial stress $\sigma$.  \end{methoddesc}
562  The locations and compontents where the velocity is fixed are set by
563  the values of \var{fixed_u_mask}. The method will try to cast the given values to appropriate  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getStress}{}
564  \Data class objects.  Returns current stress.
565  \end{methoddesc}  \end{methoddesc}
566
567  \begin{methoddesc}[StokesProblemCartesian]{solve}{v,p,  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getDeviatoricStress}{}
568  \optional{max_iter=20, \optional{verbose=False, \optional{usePCG=True}}}}  Returns current deviatoric stress.
569  solves the problem and return approximations for velocity and pressure.  \end{methoddesc}
570  The arguments \var{v} and \var{p} define initial guess. The values of \var{v} marked
571  by \var{fixed_u_mask} remain unchanged.  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getPressure}{}
572  If \var{usePCG} is set to \True  Returns current pressure.
573  reconditioned conjugate gradient method (PCG) \index{preconditioned conjugate gradient method!PCG}  scheme is used. Otherwise the problem is solved generalized minimal residual method (GMRES) \index{generalized minimal residual method!GMRES}. In most cases  \end{methoddesc}
574  the PCG scheme is more efficient.
575  \var{max_iter} defines the maximum number of iteration steps.  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getVelocity}{}
576  If \var{verbose} is set to \True informations on the progress of of the solver are printed.  Returns current velocity.
577    \end{methoddesc}
578
579    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getDeviatoricStrain}{}
580    Returns deviatoric strain of current velocity
581    \end{methoddesc}
582
583    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{getTau}{}
584    Returns current second invariant of deviatoric stress
585    \end{methoddesc}
586
588    Returns current second invariant of deviatoric strain
589  \end{methoddesc}  \end{methoddesc}
590
591
592  \begin{methoddesc}[StokesProblemCartesian]{setTolerance}{\optional{tolerance=1.e-4}}  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setTolerance}{tol=1.e-4}
593  sets the tolerance in an appropriate norm relative to the right hand side. The tolerance must be non-negative and less than 1.  Sets the tolerance used to terminate the iteration on a time step.
\end{methoddesc}
\begin{methoddesc}[StokesProblemCartesian]{getTolerance}{}
returns the current relative tolerance.
\end{methoddesc}
\begin{methoddesc}[StokesProblemCartesian]{setAbsoluteTolerance}{\optional{tolerance=0.}}
sets the absolute tolerance for the error in the relevant norm. The tolerance must be non-negative. Typically the
absolute talerance is set to 0.
\end{methoddesc}
\begin{methoddesc}[StokesProblemCartesian]{getAbsoluteTolerance}{}
sreturns the current absolute tolerance.
\end{methoddesc}
\begin{methoddesc}[StokesProblemCartesian]{setSubProblemTolerance}{\optional{rtol=None}}
sets the tolerance to solve the involved PDEs. The subtolerance \var{rtol} should not be choosen to large
in order to avoid feed back of errors in the subproblem solution into the outer iteration.
On the otherhand is choosen to small compute time is wasted.
If \var{rtol} is set to \var{None} the sub-tolerance is set automatically depending on the
tolerance choosen for the oter iteration.
594  \end{methoddesc}  \end{methoddesc}
595  \begin{methoddesc}[StokesProblemCartesian]{getSubProblemTolerance}{}
596  return the tolerance for the involved PDEs.  \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setFlowTolerance}{tol=1.e-4}
597    Sets the relative tolerance for the incompressible solver, see \class{StokesProblemCartesian} for details.
598    \end{methoddesc}
599
600    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setFlowSubTolerance}{tol=1.e-8}
601    Sets the relative tolerance for the subsolver of the flow solver, see
602    \class{StokesProblemCartesian} for details.\begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setElasticShearModulus}{mu=None}
603    Sets the elastic shear modulus $\mu$. If \var{mu} is set to None (default) elasticity is not applied.
604    \end{methoddesc}
605    \end{methoddesc}
606
607    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setEtaTolerance=}{rtol=1.e-8}
608    sets the relative tolerance for the effectice viscosity. Iteration on a time step is completed if the realtive of the effective viscosity is less than \var{rtol}.
609    \end{methoddesc}
610
611    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setDruckerPragerLaw}
612    {\optional{tau_Y=None, \optional{friction=None}}}
613    Sets the parameters $\tau\hackscore{Y}$ and $\beta$ for the Drucker-Prager model in condition~\ref{IKM-EQU-8c}. If \var{tau_Y} is set to None (default) Drucker-Prager
614    condition is not applied.
615    \end{methoddesc}
616
617    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setElasticShearModulus}{mu=None}
618    Sets the elastic shear modulus $\mu$. If \var{mu} is set to None (default) elasticity is not applied.
619    \end{methoddesc}
620
621
622    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{setPowerLaws}{eta_N, tau_t, power}
623    Sets the parameters of the power-law for all materials as defined in
624    equation~\ref{IKM-EQU-5b}.
625    \var{eta_N} is the list of viscosities $\eta^{q}\hackscore{N}$,
626    \var{tau_t} is the list of reference stresses  $\tau\hackscore{t}^q$,
627    and \var{power} is the list of  power law coefficients $n^{q}$.
628    \end{methoddesc}
629
630
631    \begin{methoddesc}[IncompressibleIsotropicFlowCartesian]{update}{dt
632    \optional{, iter_max=100
633    \optional{, inner_iter_max=20
634    }}}
635    Updates stress, velocity and pressure for time increment \var{dt}.
636    where \var{iter_max} is the maximum number of iteration steps on a time step to
637    update the effective viscosity and \var{inner_iter_max} is the maximum
638    number of itertion steps in the incompressible solver.
639  \end{methoddesc}  \end{methoddesc}
640
641    \subsection{Example}
642    later
643
644  % \section{Drucker Prager Model}  % \section{Drucker Prager Model}

Legend:
 Removed from v.2432 changed lines Added in v.2433