Cantera
Install
User Guide
Examples
Reference
Develop
Community
4.0.0a2
Toggle main menu visibility
Loading...
Searching...
No Matches
MultiJac.cpp
Go to the documentation of this file.
1
//! @file MultiJac.cpp Implementation file for class MultiJac
2
3
// This file is part of Cantera. See License.txt in the top-level directory or
4
// at https://cantera.org/license.txt for license and copyright information.
5
6
#include "
cantera/oneD/MultiJac.h
"
7
#include <ctime>
8
9
namespace
Cantera
10
{
11
12
void
MultiJac::reset
()
13
{
14
m_mat
.bfill(0.0);
15
m_age
= 10000;
16
}
17
18
void
MultiJac::initialize
(
size_t
nVars)
19
{
20
m_dim
= nVars;
21
m_mat
.resize(
m_dim
,
m_mat
.nSubDiagonals(),
m_mat
.nSuperDiagonals());
22
m_ssdiag
.resize(
m_dim
);
23
}
24
25
void
MultiJac::setBandwidth
(
size_t
bw)
26
{
27
m_mat
.resize(
m_dim
, bw, bw);
28
}
29
30
void
MultiJac::setValue
(
size_t
row,
size_t
col,
double
value)
31
{
32
m_mat
(row, col) = value;
33
if
(row == col) {
34
m_ssdiag
[row] = value;
35
}
36
}
37
38
void
MultiJac::updateTransient
(
double
rdt, span<const int> mask)
39
{
40
for
(
size_t
n = 0; n <
m_dim
; n++) {
41
m_mat
.value(n,n) =
m_ssdiag
[n] - mask[n]*rdt;
42
}
43
factorize
();
44
}
45
46
}
// namespace
MultiJac.h
Cantera::MultiJac::m_mat
BandMatrix m_mat
Underlying matrix storage.
Definition
MultiJac.h:55
Cantera::MultiJac::updateTransient
void updateTransient(double rdt, span< const int > mask) override
Update the diagonal terms in the Jacobian by using the transient mask .
Definition
MultiJac.cpp:38
Cantera::MultiJac::setBandwidth
void setBandwidth(size_t bw) override
Used to provide system bandwidth for implementations that use banded matrix storage.
Definition
MultiJac.cpp:25
Cantera::MultiJac::setValue
void setValue(size_t row, size_t col, double value) override
Set a value at the specified row and column of the jacobian triplet vector.
Definition
MultiJac.cpp:30
Cantera::MultiJac::factorize
void factorize() override
Factorize the system matrix.
Definition
MultiJac.h:34
Cantera::MultiJac::m_ssdiag
vector< double > m_ssdiag
Diagonal of the steady-state Jacobian.
Definition
MultiJac.h:56
Cantera::MultiJac::reset
void reset() override
Reset parameters as needed.
Definition
MultiJac.cpp:12
Cantera::MultiJac::initialize
void initialize(size_t nVars) override
Called during setup for any processes that need to be completed prior to setup functions used in sund...
Definition
MultiJac.cpp:18
Cantera::SystemJacobian::m_dim
size_t m_dim
Dimension of the system.
Definition
SystemJacobian.h:200
Cantera::SystemJacobian::m_age
int m_age
Age of the Jacobian (times incrementAge() has been called).
Definition
SystemJacobian.h:214
Cantera
Namespace for the Cantera kernel.
Definition
AnyMap.cpp:595
src
oneD
MultiJac.cpp
Generated by
1.17.0