\documentstyle[11pt]{article}
\nonstopmode
\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}
\renewcommand{\baselinestretch}{1.30}
\textwidth=6.0in
\textheight=8.5in
\topmargin=-0.5in
\oddsidemargin=0.25in

\begin{document}
\section{System Model}

   We have conducted a background study of the power system's model.
Although there is a consistent theoretical model of the system,
the formulation of the system model have many variations.
This concern us because the index of the DAE system is depend on the
formulation of the model~\cite{Num-Sol}.  For all practical purpose, the
index of the DAE system can be think of as a measure of complexity of the
system for the DAE solvers.  Currently, we do not have reliable software for
solving problem with index higher than one.  Specifically, we are concern how
the exciter's model is interface to the generator model.  If the formulation
of the exciter is related to the state variable of the transmission network
or the load, then the resulting system of DAE is index two.  However,
the current power transient problem is solved by decoupling the DAE system into
ODE and algebraic system.  This indicates the the formulation of the system
model is at most index one.


\section{Concurrent DASSL}

Concurrent DASSL (Cdassl) implements the well-known algorithms by
Petzold incorporated in the Fortran codes DASSL and DASPK.  Concurrent
DASSL dates back to 1989, and we have reworked Concurrent DASSL to
reflect improvements in our understanding of needs for concurrent,
scalable DAE solvers.  In this poster, we will report Cdassl's three
recent important improvements.

First, warning and error handling has been modified to give an
reasonably accurate picture of Cdassl's operation.  To post a warning
and error flag successfully, Cdassl uses a combine function to provide
communication between all processes.  However, a combine communication
synchronize all processes involved .  Consequently, a trade-off has to
be made to minimize the cost of the warning and error reporting.  This
is accomplished by communicating status flags after the existing
synchronization points, such as, norm or tolerance computation. During
these calculations, Column or row combine functions are used to communicate
and to compute results already. As a result, all processors has already been
Row-wise or column-wise synchronized and the added synchronization over the
processors grid will have reduced impact on Cdassl's performance.
%
%  We pay the price in full here.
%  Norm and tolerance only Sync. The processor in 1D.
%  Error flag needs 2D combine.
%
In addition, these calculations happen regularly
during the course of Cdassl's operation, so the warning and error
status is reported with reasonable reliability compared to the original,
sequential code.  To date, the issue of error reporting, and clean
exit from a concurrent library has not been looked at that carefully,
so we want to point out that such mechanisms add communication to
the system, and require special attention.

Second, Cdassl's performance is enhanced by replacing loops that run
over a concurrent vector's (Cvector's ) data with level 1 Concurrent
BLAS (CBLAS).  CBLAS are highly optimized Cvector operators and may
exploit special machine hardware.  Consequently, Cdassl will have
significant performance increase, whenever high performance CBLAS are
available.  On many systems, portable level-1 CBLAS, defined in terms
of BLAS will be sufficient to attain such high performance.

Third, Cdassl has been reorganized and redesigned better to conform to
Multicomputer Toolbox's object-oriented design philosophy.  Under the
new organization, Cdassl is freed from the binding of the linear
system's matrix structure.  Combining this with the new design of the
uniform calling interface provides the users of the flexibility for
``part-swapping.''  In the revised Cdassl, the linear system and
Newton method are handled through uniform calling interfaces.  These
interfaces provide the C++ ``public inheritance'' functionality
for the C-based Toolbox libraries.  
As a result, the user can use any linear system solver
as long as the solver conform to the standard calling convention.

Cdassl uses Newton's method to solve a system of nonlinear system equation
for one time step.
In turn, Newton's method uses the linear system solver to solve multiple
linear
system of equations.  As a result, Cdassl spends most of its run time on
solving linear systems.


The advantages of this interface can be demonstrate by the following example.

\begin{verbatim}
Tbx_linear_system linear_system;
void    *Matrix;
    
...

/* create the matrix data structure */
Matrix = (void *) new_Cmatrix(Matrix_Dis, Matrix_Row_Size, Matrix_Col_Size);
     
/* create the LU information structure: */
linear_system.Info = new_Clu_info(Matrix);

linear_system.b = new_Cvector(...)

linear_system.x = new_Cvector(...)

linear_system.linear_solver = new_method(lu_factor_Cmatrix, NULL);

...

\end{verbatim}

\begin{verbatim}
Tbx_linear_system linear_system;
void    *Matrix;
    
...

/* create the matrix data structure */
Matrix = (void *) new_Dmatrix(Matrix_Dis, Matrix_Row_Size, Matrix_Col_Size);

Strategy = CMATRIX_COMPLETE_PIVOTING;

/* create the pivoting structure: */
pivgrp = new_DXpivot_group(Strategy, CSPAR_PIV_IDX_NSCALE);

/* create the LU information structure: */
linear_system.Info = new_Dlu_info(Matrix, pivgrp);

linear_system.b = new_Cvector(...)

linear_system.x = new_Cvector(...)

linear_system.linear_solver = new_method(lu_factor_Dmatrix, NULL);

...

\end{verbatim}

   With minimal effort, the user can switch Cdassl form Toolbox's dense solver
to sparse solver.  The dense solver have $O(n^2)$ run time, where $n$ is
number of equations in the DAE system.  The sparse solver
have $O(n^{1.x})$, where $0 \geq x \leq 1$, run time.  
In addition, the interface also provides a
hook for pre-processing, such as, matrix reordering, for the direct linear solver.
In this poster, we will demonstrate that this
improvement provides unprecedented flexibility and convenience for
Cdassl users.

Since Newton's method is used to solve the Cdassl's nonlinear system,
the Newton's method is provided the information of the system nonlinear
equations and the performance characteristic of the linear solver.
Consequently, the Newton's method subroutine can be programmed to trade off
accuracy with computation speed.
Hence, an uniform calling interface for Newton's method is provided for
possible enhancement.

In the future, an uniform calling interface for DAE solver will be provided.
So that, different DAE solver can be used.

\bibliography{report}
\bibliographystyle{unsrt}

\end{document}
\endinput



