OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Namespace containing the basic application framework used to loop over cells and create objects passed to FuelCellShop::Equation objects. More...
Classes | |
class | ApplicationBase |
Base class for applications. More... | |
class | ApplicationData |
Here we handle general data of applications. More... | |
class | ApplicationWrapper |
This class implements either iterative or time-stepping wrapper of applications. More... | |
class | BlockMatrixApplication |
Application handling matrices and assembling linear systems of equations. More... | |
class | DoFApplication |
Base class for all linear applications, i.e., all applications requiring Triangulation and DoFHandler classes. More... | |
class | Event |
Objects of this kind are used to notify interior applications of changes provoked by an outer loop. More... | |
class | FEVectors |
The data type used in function calls of Application. More... | |
struct | MatrixBlock |
A wrapper around a MATRIX object, storing the coordinates in the global block matrix as well. More... | |
struct | BlockInfo |
A small structure collecting the different BlockIndices of FEVector vectors (for instance, solution) involved in the computations. More... | |
class | DoFInfo |
Very basic info class only containing information on geometry and degrees of freedom on a mesh entity. More... | |
class | IntegrationInfo |
This class is created for the objects handed to the mesh loops. More... | |
class | OptimizationBlockMatrixApplication |
Application handling matrices and assembling the linear system to solve the sensitivity equations. More... | |
class | DAESolver |
This class provides an interface to the Fortran 77 code COLDAE. More... | |
class | DAEWrapper |
This class is to be used as a wrapper for the functions needed in the DAESolver. More... | |
class | AdaptiveRefinement |
This class is initialized with an application that describes the linearization of the problem that we would like to solve and the nonlinear solver that drives the process (usually a Newton loop). More... | |
class | newtonBase |
Base class for all classes performing Newton's iteration. More... | |
class | NewtonBasic |
This class performs basic Newton iterations with a constant weight. More... | |
class | Newton3pp |
Application class performing Newton's iteration. More... | |
class | NewtonLineSearch |
Application class performing a Newton's iteration as described in newtonBase. More... | |
class | Picard |
Application class performing a Picard iteration as described in the PicardBase. More... | |
class | PicardBase |
Base class for all classes performing Picard iterations. More... | |
class | ThetaScheme |
class | TransientBase |
This is a base class for transient solvers. More... | |
Typedefs | |
typedef BlockVector< double > | FEVector |
The vector class used by applications. More... | |
typedef std::vector < MatrixBlock< FullMatrix < double > > > | MatrixVector |
The matrix vector used in the mesh loops. More... | |
typedef std::vector< Vector < double > > | VectorVector |
The std::vector of dealii::Vectors used in the mesh loops. More... | |
typedef void(* | fsub_ptr )(double &, double[], double[], double[]) |
typedef void(* | dfsub_ptr )(double &, double[], double[], double[]) |
typedef void(* | gsub_ptr )(int &, double[], double &) |
typedef void(* | dgsub_ptr )(int &, double[], double[]) |
typedef void(* | guess_ptr )(double &, double[], double[], double[]) |
Enumerations | |
enum | LinearSolver { LinearSolver::UMFPACK, LinearSolver::CG, LinearSolver::ILU_GMRES, LinearSolver::MUMPS, LinearSolver::BICGSTAB } |
Enumeration class for Linear solvers. More... | |
enum | NonLinearSolver { NonLinearSolver::NONE, NonLinearSolver::NEWTONBASIC, NonLinearSolver::NEWTON3PP, NonLinearSolver::NEWTONLINESEARCH, PICARD } |
Enumeration class for Non-linear solvers. More... | |
enum | RefinementSolver { RefinementSolver::ADAPTIVE } |
Enumeration class for refinement types. More... | |
enum | SolverName { noSolver = 0, LINEAR, NEWTON, PICARD, PICARD } |
Functions | |
template<int dim, typename TYPE > | |
void | fill_data (const FEValuesBase< dim > &fe_values, const FEVector &fe_vector, const std::vector< unsigned int > &local_dof_indices, unsigned int first_index, unsigned int n_indices, std::vector< std::vector< TYPE > > &result) |
Helper functions computing the desired data in each quadrature point of a mesh entity by calling FEValuesBase::get_function_values() , FEValuesBase::get_function_grads() , and FEValuesBase::get_function_hessians() . More... | |
template<int dim> | |
void | fill_data (const FEValuesBase< dim > &fe_values, const FEVector &fe_vector, const std::vector< unsigned int > &local_dof_indices, unsigned int first_index, unsigned int n_indices, std::vector< std::vector< double > > &result) |
template<int dim> | |
void | fill_data (const FEValuesBase< dim > &fe_values, const FEVector &fe_vector, const std::vector< unsigned int > &local_dof_indices, unsigned int first_index, unsigned int n_indices, std::vector< std::vector< Tensor< 1, dim > > > &result) |
template<int dim> | |
void | fill_data (const FEValuesBase< dim > &fe_values, const FEVector &fe_vector, const std::vector< unsigned int > &local_dof_indices, unsigned int first_index, unsigned int n_indices, std::vector< std::vector< Tensor< 2, dim > > > &result) |
void | DAE_dummy_guess (double &x, double z[], double y[], double df[]) |
A dummy guess function to be provided to COLDAE when a user wishes to provide none. More... | |
void | for_to_c_matrix (int rows, int cols, double *fmat, double **cmat) |
Converts a FORTRAN 2D array to a C/C++ 2D array. More... | |
void | c_to_for_matrix (int rows, int cols, double **cmat, double *fmat) |
Converts a C/C++ 2D array to a Fortran 2D array. More... | |
Namespace containing the basic application framework used to loop over cells and create objects passed to FuelCellShop::Equation objects.
This namespace encapsulates all the routines that are used to generate an application. ApplicationBase and ApplicationWrapper are declared here. All applications inherit from the objects developed here.
typedef void(* FuelCell::ApplicationCore::dfsub_ptr)(double &, double[], double[], double[]) |
typedef void(* FuelCell::ApplicationCore::dgsub_ptr)(int &, double[], double[]) |
typedef BlockVector< double > FuelCell::ApplicationCore::FEVector |
The vector class used by applications.
typedef void(* FuelCell::ApplicationCore::fsub_ptr)(double &, double[], double[], double[]) |
typedef void(* FuelCell::ApplicationCore::gsub_ptr)(int &, double[], double &) |
typedef void(* FuelCell::ApplicationCore::guess_ptr)(double &, double[], double[], double[]) |
typedef std::vector< MatrixBlock< FullMatrix<double> > > FuelCell::ApplicationCore::MatrixVector |
The matrix vector used in the mesh loops.
typedef std::vector< Vector<double> > FuelCell::ApplicationCore::VectorVector |
The std::vector of dealii::Vectors used in the mesh loops.
|
strong |
|
strong |
|
strong |
void FuelCell::ApplicationCore::c_to_for_matrix | ( | int | rows, |
int | cols, | ||
double ** | cmat, | ||
double * | fmat | ||
) |
Converts a C/C++ 2D array to a Fortran 2D array.
rows | is the number of rows in the 2D array. |
cols | is the number of columns in the 2D array. |
cmat | is the 2D C/C++ matrix. |
fmat | is the returned 2D FORTRAN matrix. |
void FuelCell::ApplicationCore::DAE_dummy_guess | ( | double & | x, |
double | z[], | ||
double | y[], | ||
double | df[] | ||
) |
A dummy guess function to be provided to COLDAE when a user wishes to provide none.
x | is a value between a <= x <= b. |
z | is the initial guess for z(u(x)). |
y | is the initial guess for y(x). |
df | is array that contains the derivative of u(x) |
|
inline |
Helper functions computing the desired data in each quadrature point of a mesh entity by calling FEValuesBase::get_function_values()
, FEValuesBase::get_function_grads()
, and FEValuesBase::get_function_hessians()
.
fe_values,: | The FEValues object. |
fe_vector,: | The global finite element function in the form of a global nodal FEVector . |
local_dof_indices,: | The local DoF indices associated with the current mesh entity. |
first_index,: | The first index in local_dof_indices to be used. |
n_indices,: | The number of indices in local_dof_indices to be used. |
result,: | The result. |
The access to ith
component in qth
quadrature point is result
[i][q].
Referenced by FuelCell::ApplicationCore::IntegrationInfo< dim, FEVALUESBASE >::fill_local_data().
|
inline |
|
inline |
|
inline |
void FuelCell::ApplicationCore::for_to_c_matrix | ( | int | rows, |
int | cols, | ||
double * | fmat, | ||
double ** | cmat | ||
) |
Converts a FORTRAN 2D array to a C/C++ 2D array.
rows | is the number of rows in the 2D array. |
cols | is the number of columns in the 2D array. |
fmat | is the 2D FORTRAN matrix. |
cmat | is the returned 2D C/C++ matrix. |