19 double*
const sm,
double*
const ss)
24 for (
size_t i=0; i<77; i++) {
28 plogf(
" --- Subroutine elem_rearrange() called to ");
29 plogf(
"check stoich. coefficient matrix\n");
30 plogf(
" --- and to rearrange the element ordering once");
37 double test = -1.0E10;
52 while (jr < ncomponents) {
69 "Shouldn't be here. Algorithm misfired.");
86 for (
size_t j = 0; j < ncomponents; ++j) {
93 for (
size_t j = 0; j < jl; ++j) {
95 for (
size_t i = 0; i < ncomponents; ++i) {
96 ss[j] += sm[i + jr*ncomponents] * sm[i + j*ncomponents];
103 for (
size_t j = 0; j < jl; ++j) {
104 for (
size_t i = 0; i < ncomponents; ++i) {
105 sm[i + jr*ncomponents] -= ss[j] * sm[i + j*ncomponents];
113 for (
size_t ml = 0; ml < ncomponents; ++ml) {
114 sa[jr] += pow(sm[ml + jr*ncomponents], 2);
117 if (sa[jr] > 1.0e-6) {
132 std::swap(aw[jr], aw[k]);
147 "vcs_switch_elem_pos",
148 "inappropriate args: {} {}", ipos, jpos);
int vcs_elem_rearrange(double *const aw, double *const sa, double *const sm, double *const ss)
Rearrange the constraint equations represented by the Formula Matrix so that the operational ones are...
vector_fp m_elemAbundances
Element abundances vector.
size_t nElemConstraints() const
Returns the number of element constraints.
std::vector< vcs_VolPhase * > m_VolPhaseList
Array of Phase Structures. Length = number of phases.
std::vector< size_t > m_elementMapIndex
Index vector that keeps track of the rearrangement of the elements.
size_t elemGlobalIndex(const size_t e) const
Returns the global index of the local element index for the phase.
vector_int m_elementActive
Specifies whether an element constraint is active.
std::vector< std::string > m_elementName
Vector of strings containing the element names.
Header file for the internal object that holds the vcs equilibrium problem (see Class VCS_SOLVE and E...
Header for the object representing each phase within vcs.
size_t m_numElemConstraints
Number of element constraints in the problem.
size_t m_numSpeciesTot
Total number of species in the problems.
Base class for exceptions thrown by Cantera classes.
int m_debug_print_lvl
Debug printing lvl.
size_t m_numComponents
Number of components calculated for the problem.
vector_fp m_elemAbundancesGoal
Element abundances vector Goals.
Phase information and Phase calculations for vcs.
#define AssertThrowMsg(expr, procedure,...)
Assertion must be true or an error is thrown.
Array2D m_formulaMatrix
Formula matrix for the problem.
#define plogendl()
define this Cantera function to replace cout << endl;
Contains declarations for string manipulation functions within Cantera.
#define plogf
define this Cantera function to replace printf
vector_int m_elType
Type of the element constraint.
Namespace for the Cantera kernel.
size_t m_numPhases
Number of Phases in the problem.
void vcs_switch_elem_pos(size_t ipos, size_t jpos)
Swaps the indices for all of the global data for two elements, ipos and jpos.
Definitions for the classes that are thrown when Cantera experiences an error condition (also contain...
void setElemGlobalIndex(const size_t eLocal, const size_t eGlobal)
sets a local phase element to a global index value