Computes Advective fluxes for a constant velocity. More...
#include <AdvectiveFluxCalculatorConstantVelocity.h>
Public Member Functions | |
AdvectiveFluxCalculatorConstantVelocity (const InputParameters ¶meters) | |
virtual void | timestepSetup () override |
virtual void | meshChanged () override |
virtual void | initialize () override |
virtual void | threadJoin (const UserObject &uo) override |
virtual void | finalize () override |
virtual void | execute () override |
virtual void | executeOnElement (dof_id_type global_i, dof_id_type global_j, unsigned local_i, unsigned local_j, unsigned qp) |
This is called by multiple times in execute() in a double loop over _current_elem's nodes (local_i and local_j) nested in a loop over each of _current_elem's quadpoints (qp). More... | |
Real | getFluxOut (dof_id_type node_i) const |
Returns the flux out of lobal node id. More... | |
const std::map< dof_id_type, Real > & | getdFluxOutdu (dof_id_type node_i) const |
Returns r where r[j] = d(flux out of global node i)/du(global node j) used in Jacobian computations. More... | |
const std::vector< std::vector< Real > > & | getdFluxOutdKjk (dof_id_type node_i) const |
Returns r where r[j][k] = d(flux out of global node i)/dK[connected node j][connected node k] used in Jacobian computations. More... | |
unsigned | getValence (dof_id_type node_i) const |
Returns the valence of the global node i Valence is the number of times the node is encountered in a loop over elements (that have appropriate subdomain_id, if the user has employed the "blocks=" parameter) seen by this processor (including ghosted elements) More... | |
Protected Types | |
enum | FluxLimiterTypeEnum { FluxLimiterTypeEnum::MinMod, FluxLimiterTypeEnum::VanLeer, FluxLimiterTypeEnum::MC, FluxLimiterTypeEnum::superbee, FluxLimiterTypeEnum::None } |
Determines Flux Limiter type (Page 135 of Kuzmin and Turek) "None" means that limitFlux=0 always, which implies zero antidiffusion will be added. More... | |
enum | PQPlusMinusEnum { PQPlusMinusEnum::PPlus, PQPlusMinusEnum::PMinus, PQPlusMinusEnum::QPlus, PQPlusMinusEnum::QMinus } |
Signals to the PQPlusMinus method what should be computed. More... | |
Protected Member Functions | |
virtual Real | computeVelocity (unsigned i, unsigned j, unsigned qp) const override |
Computes the transfer velocity between current node i and current node j at the current qp in the current element (_current_elem). More... | |
virtual Real | computeU (unsigned i) const override |
Computes the value of u at the local node id of the current element (_current_elem) More... | |
virtual void | buildCommLists () |
When using multiple processors, other processors will compute: More... | |
virtual void | exchangeGhostedInfo () |
Sends and receives multi-processor information regarding u_nodal and k_ij. More... | |
void | limitFlux (Real a, Real b, Real &limited, Real &dlimited_db) const |
flux limiter, L, on Page 135 of Kuzmin and Turek More... | |
Real | rPlus (dof_id_type sequential_i, std::vector< Real > &dlimited_du, std::vector< Real > &dlimited_dk) const |
Returns the value of R_{i}^{+}, Eqn (49) of KT. More... | |
Real | rMinus (dof_id_type sequential_i, std::vector< Real > &dlimited_du, std::vector< Real > &dlimited_dk) const |
Returns the value of R_{i}^{-}, Eqn (49) of KT. More... | |
Real | PQPlusMinus (dof_id_type sequential_i, const PQPlusMinusEnum pq_plus_minus, std::vector< Real > &derivs, std::vector< Real > &dpq_dk) const |
Returns the value of P_{i}^{+}, P_{i}^{-}, Q_{i}^{+} or Q_{i}^{-} (depending on pq_plus_minus) which are defined in Eqns (47) and (48) of KT. More... | |
void | zeroedConnection (std::map< dof_id_type, Real > &the_map, dof_id_type node_i) const |
Clears the_map, then, using _kij, constructs the_map so that the_map[node_id] = 0.0 for all node_id connected with node_i. More... | |
Protected Attributes | |
RealVectorValue | _velocity |
advection velocity More... | |
const VariableValue & | _u_at_nodes |
the nodal values of u More... | |
const VariablePhiValue & | _phi |
Kuzmin-Turek shape function. More... | |
const VariablePhiGradient & | _grad_phi |
grad(Kuzmin-Turek shape function) More... | |
bool | _resizing_needed |
whether _kij, etc, need to be sized appropriately (and valence recomputed) at the start of the timestep More... | |
enum AdvectiveFluxCalculatorBase::FluxLimiterTypeEnum | _flux_limiter_type |
std::vector< std::vector< Real > > | _kij |
Kuzmin-Turek K_ij matrix. More... | |
std::vector< Real > | _flux_out |
_flux_out[i] = flux of "heat" from sequential node i More... | |
std::vector< std::map< dof_id_type, Real > > | _dflux_out_du |
_dflux_out_du[i][j] = d(flux_out[i])/d(u[j]). More... | |
std::vector< std::vector< std::vector< Real > > > | _dflux_out_dKjk |
_dflux_out_dKjk[sequential_i][j][k] = d(flux_out[sequential_i])/d(K[j][k]). More... | |
std::vector< unsigned > | _valence |
_valence[i] = number of times, in a loop over elements seen by this processor (viz, including ghost elements) and are part of the block-restricted blocks of this UserObject, that the sequential node i is encountered More... | |
std::vector< Real > | _u_nodal |
_u_nodal[i] = value of _u at sequential node number i More... | |
std::vector< bool > | _u_nodal_computed_by_thread |
_u_nodal_computed_by_thread(i) = true if _u_nodal[i] has been computed in execute() by the thread on this processor More... | |
PorousFlowConnectedNodes | _connections |
Holds the sequential and global nodal IDs, and info regarding mesh connections between them. More... | |
std::size_t | _number_of_nodes |
Number of nodes held by the _connections object. More... | |
processor_id_type | _my_pid |
processor ID of this object More... | |
std::map< processor_id_type, std::vector< dof_id_type > > | _nodes_to_receive |
_nodes_to_receive[proc_id] = list of sequential nodal IDs. More... | |
std::map< processor_id_type, std::vector< dof_id_type > > | _nodes_to_send |
_nodes_to_send[proc_id] = list of sequential nodal IDs. More... | |
std::map< processor_id_type, std::vector< std::pair< dof_id_type, dof_id_type > > > | _pairs_to_receive |
_pairs_to_receive[proc_id] indicates the k(i, j) pairs that will be sent to us from proc_id _pairs_to_receive is first built (in buildCommLists()) using global node IDs, but after construction, a translation to sequential node IDs and the index of connections is performed, for efficiency. More... | |
std::map< processor_id_type, std::vector< std::pair< dof_id_type, dof_id_type > > > | _pairs_to_send |
_pairs_to_send[proc_id] indicates the k(i, j) pairs that we will send to proc_id _pairs_to_send is first built (in buildCommLists()) using global node IDs, but after construction, a translation to sequential node IDs and the index of connections is performed, for efficiency. More... | |
const Real | _allowable_MB_wastage |
A mooseWarning is issued if mb_wasted = (_connections.sizeSequential() - _connections.numNodes()) * 4 / 1048576 > _allowable_MB_wastage. More... | |
std::vector< std::vector< Real > > | _dij |
Vectors used in finalize() More... | |
std::vector< std::vector< Real > > | _dDij_dKij |
dDij_dKij[i][j] = d(D[i][j])/d(K[i][j]) for i!=j More... | |
std::vector< std::vector< Real > > | _dDij_dKji |
dDij_dKji[i][j] = d(D[i][j])/d(K[j][i]) for i!=j More... | |
std::vector< std::vector< Real > > | _dDii_dKij |
dDii_dKij[i][j] = d(D[i][i])/d(K[i][j]) More... | |
std::vector< std::vector< Real > > | _dDii_dKji |
dDii_dKji[i][j] = d(D[i][i])/d(K[j][i]) More... | |
std::vector< std::vector< Real > > | _lij |
std::vector< Real > | _rP |
std::vector< Real > | _rM |
std::vector< std::vector< Real > > | _drP |
drP[i][j] = d(rP[i])/d(u[j]). Here j indexes the j^th node connected to i More... | |
std::vector< std::vector< Real > > | _drM |
drM[i][j] = d(rM[i])/d(u[j]). Here j indexes the j^th node connected to i More... | |
std::vector< std::vector< Real > > | _drP_dk |
drP_dk[i][j] = d(rP[i])/d(K[i][j]). Here j indexes the j^th node connected to i More... | |
std::vector< std::vector< Real > > | _drM_dk |
drM_dk[i][j] = d(rM[i])/d(K[i][j]). Here j indexes the j^th node connected to i More... | |
std::vector< std::vector< Real > > | _fa |
fa[sequential_i][j] sequential_j is the j^th connection to sequential_i More... | |
std::vector< std::vector< std::map< dof_id_type, Real > > > | _dfa |
dfa[sequential_i][j][global_k] = d(fa[sequential_i][j])/du[global_k]. More... | |
std::vector< std::vector< std::vector< Real > > > | _dFij_dKik |
dFij_dKik[sequential_i][j][k] = d(fa[sequential_i][j])/d(K[sequential_i][k]). More... | |
std::vector< std::vector< std::vector< Real > > > | _dFij_dKjk |
dFij_dKjk[sequential_i][j][k] = d(fa[sequential_i][j])/d(K[sequential_j][k]). More... | |
Computes Advective fluxes for a constant velocity.
Definition at line 22 of file AdvectiveFluxCalculatorConstantVelocity.h.
|
strongprotectedinherited |
Determines Flux Limiter type (Page 135 of Kuzmin and Turek) "None" means that limitFlux=0 always, which implies zero antidiffusion will be added.
Enumerator | |
---|---|
MinMod | |
VanLeer | |
MC | |
superbee | |
None |
Definition at line 169 of file AdvectiveFluxCalculatorBase.h.
|
strongprotectedinherited |
Signals to the PQPlusMinus method what should be computed.
Enumerator | |
---|---|
PPlus | |
PMinus | |
QPlus | |
QMinus |
Definition at line 255 of file AdvectiveFluxCalculatorBase.h.
AdvectiveFluxCalculatorConstantVelocity::AdvectiveFluxCalculatorConstantVelocity | ( | const InputParameters & | parameters | ) |
Definition at line 29 of file AdvectiveFluxCalculatorConstantVelocity.C.
|
protectedvirtualinherited |
When using multiple processors, other processors will compute:
Build the multi-processor communication lists.
(A) We will have to send _u_nodal information to other processors. This is because although we can Evaluate Variables at all elements in _fe_problem.getEvaluableElementRange(), in the PorousFlow setting _u_nodal could depend on Material Properties within the elements, and we can't access those Properties within the ghosted elements.
(B) In a similar way, we need to send _kij information to other processors. A similar strategy is followed
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 850 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::buildCommLists(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
overrideprotectedvirtual |
Computes the value of u at the local node id of the current element (_current_elem)
i | local node id of the current element |
Implements AdvectiveFluxCalculatorBase.
Definition at line 46 of file AdvectiveFluxCalculatorConstantVelocity.C.
|
overrideprotectedvirtual |
Computes the transfer velocity between current node i and current node j at the current qp in the current element (_current_elem).
For instance, (_grad_phi[i][qp] * _velocity) * _phi[j][qp];
i | node number in the current element |
j | node number in the current element |
qp | quadpoint number in the current element |
Implements AdvectiveFluxCalculatorBase.
Definition at line 40 of file AdvectiveFluxCalculatorConstantVelocity.C.
|
protectedvirtualinherited |
Sends and receives multi-processor information regarding u_nodal and k_ij.
See buildCommLists for some more explanation.
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 968 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::exchangeGhostedInfo(), and AdvectiveFluxCalculatorBase::finalize().
|
overridevirtualinherited |
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 218 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::execute().
|
virtualinherited |
This is called by multiple times in execute() in a double loop over _current_elem's nodes (local_i and local_j) nested in a loop over each of _current_elem's quadpoints (qp).
It is used to compute _kij and its derivatives
global_i | global node id corresponding to the local node local_i |
global_j | global node id corresponding to the local node local_j |
local_i | local node number of the _current_elem |
local_j | local node number of the _current_elem |
qp | quadpoint number of the _current_elem |
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 241 of file AdvectiveFluxCalculatorBase.C.
Referenced by AdvectiveFluxCalculatorBase::execute(), and PorousFlowAdvectiveFluxCalculatorBase::executeOnElement().
|
overridevirtualinherited |
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 270 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::finalize().
|
inherited |
Returns r where r[j][k] = d(flux out of global node i)/dK[connected node j][connected node k] used in Jacobian computations.
node_i | global id of node |
Definition at line 737 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::finalize().
|
inherited |
Returns r where r[j] = d(flux out of global node i)/du(global node j) used in Jacobian computations.
node_i | global id of node |
Definition at line 731 of file AdvectiveFluxCalculatorBase.C.
Referenced by FluxLimitedTVDAdvection::computeJacobian(), and PorousFlowAdvectiveFluxCalculatorBase::finalize().
|
inherited |
Returns the flux out of lobal node id.
node_i | id of node |
Definition at line 743 of file AdvectiveFluxCalculatorBase.C.
Referenced by FluxLimitedTVDAdvection::computeResidual(), and PorousFlowFluxLimitedTVDAdvection::computeResidual().
|
inherited |
Returns the valence of the global node i Valence is the number of times the node is encountered in a loop over elements (that have appropriate subdomain_id, if the user has employed the "blocks=" parameter) seen by this processor (including ghosted elements)
node_i | gloal id of i^th node |
Definition at line 749 of file AdvectiveFluxCalculatorBase.C.
Referenced by FluxLimitedTVDAdvection::computeJacobian(), PorousFlowFluxLimitedTVDAdvection::computeJacobian(), FluxLimitedTVDAdvection::computeResidual(), and PorousFlowFluxLimitedTVDAdvection::computeResidual().
|
overridevirtualinherited |
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 207 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::initialize().
|
protectedinherited |
flux limiter, L, on Page 135 of Kuzmin and Turek
a | KT's "a" parameter |
b | KT's "b" parameter |
limited[out] | The value of the flux limiter, L |
dlimited_db[out] | The derivative dL/db |
Definition at line 631 of file AdvectiveFluxCalculatorBase.C.
Referenced by AdvectiveFluxCalculatorBase::rMinus(), and AdvectiveFluxCalculatorBase::rPlus().
|
overridevirtualinherited |
Definition at line 198 of file AdvectiveFluxCalculatorBase.C.
|
protectedinherited |
Returns the value of P_{i}^{+}, P_{i}^{-}, Q_{i}^{+} or Q_{i}^{-} (depending on pq_plus_minus) which are defined in Eqns (47) and (48) of KT.
sequential_i | sequential nodal ID |
pq_plus_minus | indicates whether P_{i}^{+}, P_{i}^{-}, Q_{i}^{+} or Q_{i}^{-} should be returned |
derivs[out] | derivs[j] = d(result)/d(u[sequential_j]). Here sequential_j is the j^th connection to sequential_i |
dpq_dk[out] | dpq_dk[j] = d(result)/d(K[node_i][j]). Here j indexes a connection to sequential_i. Recall that d(result)/d(K[l][m]) are zero unless l=sequential_i |
Definition at line 764 of file AdvectiveFluxCalculatorBase.C.
Referenced by AdvectiveFluxCalculatorBase::rMinus(), and AdvectiveFluxCalculatorBase::rPlus().
|
protectedinherited |
Returns the value of R_{i}^{-}, Eqn (49) of KT.
sequential_i | Sequential nodal ID |
dlimited_du[out] | dlimited_du[j] = d(R_{sequential_i}^{-})/du[sequential_j]. Here sequential_j is the j^th connection to sequential_i |
dlimited_dk[out] | dlimited_dk[j] = d(R_{sequential_i}^{-})/d(K[sequential_i][j]). Note Derivatives w.r.t. K[l][m] with l!=i are zero |
Definition at line 595 of file AdvectiveFluxCalculatorBase.C.
Referenced by AdvectiveFluxCalculatorBase::finalize().
|
protectedinherited |
Returns the value of R_{i}^{+}, Eqn (49) of KT.
node_i | nodal id |
dlimited_du[out] | dlimited_du[j] = d(R_{sequential_i}^{+})/du[sequential_j]. Here sequential_j is the j^th connection to sequential_i |
dlimited_dk[out] | dlimited_dk[j] = d(R_{sequential_i}^{+})/d(K[sequential_i][j]). Note Derivatives w.r.t. K[l][m] with l!=i are zero |
Definition at line 559 of file AdvectiveFluxCalculatorBase.C.
Referenced by AdvectiveFluxCalculatorBase::finalize().
|
overridevirtualinherited |
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 251 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::threadJoin().
|
overridevirtualinherited |
Reimplemented in PorousFlowAdvectiveFluxCalculatorBase.
Definition at line 81 of file AdvectiveFluxCalculatorBase.C.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
Clears the_map, then, using _kij, constructs the_map so that the_map[node_id] = 0.0 for all node_id connected with node_i.
[out] | the_map | the map to be zeroed appropriately |
[in] | node_i | nodal id |
Definition at line 755 of file AdvectiveFluxCalculatorBase.C.
Referenced by AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
A mooseWarning is issued if mb_wasted = (_connections.sizeSequential() - _connections.numNodes()) * 4 / 1048576 > _allowable_MB_wastage.
The _connections object uses sequential node numbering for computational efficiency, but this leads to memory being used inefficiently: the number of megabytes wasted is mb_wasted.
Definition at line 252 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
Holds the sequential and global nodal IDs, and info regarding mesh connections between them.
Definition at line 204 of file AdvectiveFluxCalculatorBase.h.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::buildCommLists(), AdvectiveFluxCalculatorBase::buildCommLists(), PorousFlowAdvectiveFluxCalculatorBase::execute(), AdvectiveFluxCalculatorBase::execute(), PorousFlowAdvectiveFluxCalculatorBase::executeOnElement(), AdvectiveFluxCalculatorBase::executeOnElement(), AdvectiveFluxCalculatorBase::finalize(), PorousFlowAdvectiveFluxCalculatorBase::finalize(), PorousFlowAdvectiveFluxCalculatorBase::getdFluxOut_dvars(), AdvectiveFluxCalculatorBase::getdFluxOutdKjk(), AdvectiveFluxCalculatorBase::getdFluxOutdu(), PorousFlowAdvectiveFluxCalculatorBase::getdK_dvar(), AdvectiveFluxCalculatorBase::getFluxOut(), AdvectiveFluxCalculatorBase::getValence(), AdvectiveFluxCalculatorBase::initialize(), PorousFlowAdvectiveFluxCalculatorBase::initialize(), AdvectiveFluxCalculatorBase::PQPlusMinus(), AdvectiveFluxCalculatorBase::rMinus(), AdvectiveFluxCalculatorBase::rPlus(), AdvectiveFluxCalculatorBase::threadJoin(), PorousFlowAdvectiveFluxCalculatorBase::threadJoin(), AdvectiveFluxCalculatorBase::timestepSetup(), PorousFlowAdvectiveFluxCalculatorBase::timestepSetup(), and AdvectiveFluxCalculatorBase::zeroedConnection().
|
protectedinherited |
dDii_dKij[i][j] = d(D[i][i])/d(K[i][j])
Definition at line 294 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
dDii_dKji[i][j] = d(D[i][i])/d(K[j][i])
Definition at line 296 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
dDij_dKij[i][j] = d(D[i][j])/d(K[i][j]) for i!=j
Definition at line 290 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
dDij_dKji[i][j] = d(D[i][j])/d(K[j][i]) for i!=j
Definition at line 292 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
dfa[sequential_i][j][global_k] = d(fa[sequential_i][j])/du[global_k].
Here global_k can be a neighbor to sequential_i or a neighbour to sequential_j (sequential_j is the j^th connection to sequential_i)
Definition at line 316 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
dFij_dKik[sequential_i][j][k] = d(fa[sequential_i][j])/d(K[sequential_i][k]).
Here j denotes the j^th connection to sequential_i, while k denotes the k^th connection to sequential_i
Definition at line 321 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
dFij_dKjk[sequential_i][j][k] = d(fa[sequential_i][j])/d(K[sequential_j][k]).
Here sequential_j is the j^th connection to sequential_i, and k denotes the k^th connection to sequential_j (this will include sequential_i itself)
Definition at line 326 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
_dflux_out_dKjk[sequential_i][j][k] = d(flux_out[sequential_i])/d(K[j][k]).
Here sequential_i is a sequential node number according to the _connections object, and j represents the j^th node connected to i according to the _connections object, and k represents the k^th node connected to j according to the _connections object. Here j must be connected to i (this does include (the sequential version of j) == i), and k must be connected to j (this does include (the sequential version of k) = i and (the sequential version of k) == (sequential version of j)))
Definition at line 190 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), AdvectiveFluxCalculatorBase::getdFluxOutdKjk(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
_dflux_out_du[i][j] = d(flux_out[i])/d(u[j]).
Here i is a sequential node number according to the _connections object, and j (global ID) must be connected to i, or to a node that is connected to i.
Definition at line 183 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), AdvectiveFluxCalculatorBase::getdFluxOutdu(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
Vectors used in finalize()
Definition at line 288 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
drM[i][j] = d(rM[i])/d(u[j]). Here j indexes the j^th node connected to i
Definition at line 305 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
drM_dk[i][j] = d(rM[i])/d(K[i][j]). Here j indexes the j^th node connected to i
Definition at line 309 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
drP[i][j] = d(rP[i])/d(u[j]). Here j indexes the j^th node connected to i
Definition at line 303 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
drP_dk[i][j] = d(rP[i])/d(K[i][j]). Here j indexes the j^th node connected to i
Definition at line 307 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
fa[sequential_i][j] sequential_j is the j^th connection to sequential_i
Definition at line 312 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
|
protectedinherited |
_flux_out[i] = flux of "heat" from sequential node i
Definition at line 179 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), AdvectiveFluxCalculatorBase::getFluxOut(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protected |
grad(Kuzmin-Turek shape function)
Definition at line 42 of file AdvectiveFluxCalculatorConstantVelocity.h.
Referenced by computeVelocity().
|
protectedinherited |
Kuzmin-Turek K_ij matrix.
Along with R+ and R-, this is the key quantity computed by this UserObject. _kij[i][j] = k_ij corresponding to the i-j node pair. Here i is a sequential node numbers according to the _connections object, and j represents the j^th node connected to i according to the _connections object.
Definition at line 176 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::exchangeGhostedInfo(), AdvectiveFluxCalculatorBase::executeOnElement(), AdvectiveFluxCalculatorBase::finalize(), AdvectiveFluxCalculatorBase::initialize(), AdvectiveFluxCalculatorBase::PQPlusMinus(), AdvectiveFluxCalculatorBase::threadJoin(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
Definition at line 298 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
processor ID of this object
Definition at line 210 of file AdvectiveFluxCalculatorBase.h.
Referenced by PorousFlowAdvectiveFluxCalculatorBase::buildCommLists(), and AdvectiveFluxCalculatorBase::buildCommLists().
|
protectedinherited |
_nodes_to_receive[proc_id] = list of sequential nodal IDs.
proc_id will send us _u_nodal at those nodes. _nodes_to_receive is built (in buildCommLists()) using global node IDs, but after construction, a translation to sequential node IDs is made, for efficiency. The result is: we will receive _u_nodal[_nodes_to_receive[proc_id][i]] from proc_id
Definition at line 218 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::buildCommLists(), PorousFlowAdvectiveFluxCalculatorBase::exchangeGhostedInfo(), and AdvectiveFluxCalculatorBase::exchangeGhostedInfo().
|
protectedinherited |
_nodes_to_send[proc_id] = list of sequential nodal IDs.
We will send _u_nodal at those nodes to proc_id _nodes_to_send is built (in buildCommLists()) using global node IDs, but after construction, a translation to sequential node IDs is made, for efficiency The result is: we will send _u_nodal[_nodes_to_receive[proc_id][i]] to proc_id
Definition at line 226 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::buildCommLists(), PorousFlowAdvectiveFluxCalculatorBase::exchangeGhostedInfo(), and AdvectiveFluxCalculatorBase::exchangeGhostedInfo().
|
protectedinherited |
Number of nodes held by the _connections object.
Definition at line 207 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), AdvectiveFluxCalculatorBase::initialize(), AdvectiveFluxCalculatorBase::threadJoin(), PorousFlowAdvectiveFluxCalculatorBase::threadJoin(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
_pairs_to_receive[proc_id] indicates the k(i, j) pairs that will be sent to us from proc_id _pairs_to_receive is first built (in buildCommLists()) using global node IDs, but after construction, a translation to sequential node IDs and the index of connections is performed, for efficiency.
The result is we will receive: _kij[_pairs_to_receive[proc_id][i].first][_pairs_to_receive[proc_id][i].second] from proc_id
Definition at line 235 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::buildCommLists(), and AdvectiveFluxCalculatorBase::exchangeGhostedInfo().
|
protectedinherited |
_pairs_to_send[proc_id] indicates the k(i, j) pairs that we will send to proc_id _pairs_to_send is first built (in buildCommLists()) using global node IDs, but after construction, a translation to sequential node IDs and the index of connections is performed, for efficiency.
The result is we will send: _kij[_pairs_to_send[proc_id][i].first][_pairs_to_send[proc_id][i+1].second] to proc_id
Definition at line 244 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::buildCommLists(), and AdvectiveFluxCalculatorBase::exchangeGhostedInfo().
|
protected |
Kuzmin-Turek shape function.
Definition at line 39 of file AdvectiveFluxCalculatorConstantVelocity.h.
Referenced by computeVelocity().
|
protectedinherited |
whether _kij, etc, need to be sized appropriately (and valence recomputed) at the start of the timestep
Definition at line 130 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::meshChanged(), AdvectiveFluxCalculatorBase::timestepSetup(), and PorousFlowAdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
Definition at line 300 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
Definition at line 299 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::finalize(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protected |
the nodal values of u
Definition at line 36 of file AdvectiveFluxCalculatorConstantVelocity.h.
Referenced by computeU().
|
protectedinherited |
_u_nodal[i] = value of _u at sequential node number i
Definition at line 198 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::exchangeGhostedInfo(), AdvectiveFluxCalculatorBase::execute(), AdvectiveFluxCalculatorBase::finalize(), AdvectiveFluxCalculatorBase::PQPlusMinus(), AdvectiveFluxCalculatorBase::threadJoin(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
_u_nodal_computed_by_thread(i) = true if _u_nodal[i] has been computed in execute() by the thread on this processor
Definition at line 201 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::execute(), AdvectiveFluxCalculatorBase::initialize(), AdvectiveFluxCalculatorBase::threadJoin(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protectedinherited |
_valence[i] = number of times, in a loop over elements seen by this processor (viz, including ghost elements) and are part of the block-restricted blocks of this UserObject, that the sequential node i is encountered
Definition at line 195 of file AdvectiveFluxCalculatorBase.h.
Referenced by AdvectiveFluxCalculatorBase::getValence(), and AdvectiveFluxCalculatorBase::timestepSetup().
|
protected |
advection velocity
Definition at line 33 of file AdvectiveFluxCalculatorConstantVelocity.h.
Referenced by computeVelocity().