Go to the documentation of this file.
42 const std::map<dof_id_type, std::vector<Real>> &
getdFluxOut_dvars(
unsigned node_id)
const;
47 virtual void execute()
override;
49 virtual void threadJoin(
const UserObject & uo)
override;
51 virtual Real
computeVelocity(
unsigned i,
unsigned j,
unsigned qp)
const override;
57 unsigned qp)
override;
71 const std::map<dof_id_type, std::vector<Real>> &
getdK_dvar(dof_id_type node_i,
72 dof_id_type node_j)
const;
105 const MaterialProperty<std::vector<RealGradient>> &
_grad_p;
111 const MaterialProperty<std::vector<std::vector<RealGradient>>> &
_dgrad_p_dvar;
133 std::vector<std::vector<std::map<dof_id_type, std::vector<Real>>>>
_dkij_dvar;
std::map< processor_id_type, std::vector< dof_id_type > > _triples_to_send
_triples_to_send[proc_id] indicates the dk(i, j)/du_nodal information that we will send to proc_id.
virtual void initialize() override
virtual void buildCommLists() override
When using multiple processors, other processors will compute:
const MaterialProperty< std::vector< Real > > & _fluid_density_qp
Fluid density for each phase (at the qp)
const std::map< dof_id_type, std::vector< Real > > & getdK_dvar(dof_id_type node_i, dof_id_type node_j) const
Returns, r, where r[global node k][a] = d(K[node_i][node_j])/d(porous_flow_variable[global node k][po...
virtual Real computedU_dvar(unsigned i, unsigned pvar) const =0
Compute d(u)/d(porous_flow_variable)
const FEType _fe_type
FEType to use.
std::vector< bool > _du_dvar_computed_by_thread
Whether _du_dvar has been computed by the local thread.
const VariablePhiValue & _phi
Kuzmin-Turek shape function.
virtual void executeOnElement(dof_id_type global_i, dof_id_type global_j, unsigned local_i, unsigned local_j, unsigned qp) override
This is called by multiple times in execute() in a double loop over _current_elem's nodes (local_i an...
std::vector< std::map< dof_id_type, std::vector< Real > > > _dflux_out_dvars
_dflux_out_dvars[sequential_i][global_j][pvar] = d(flux_out[global version of sequential_i])/d(porous...
const MaterialProperty< std::vector< RealGradient > > & _grad_p
Gradient of the pore pressure in each phase.
This holds maps between the nonlinear variables used in a PorousFlow simulation and the variable numb...
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 cur...
const MaterialProperty< std::vector< std::vector< Real > > > & _dfluid_density_qp_dvar
Derivative of the fluid density for each phase wrt PorousFlow variables (at the qp)
virtual void threadJoin(const UserObject &uo) override
const std::map< dof_id_type, std::vector< Real > > & getdFluxOut_dvars(unsigned node_id) const
Returns d(flux_out)/d(porous_flow_variables.
const MaterialProperty< std::vector< std::vector< Real > > > & _dgrad_p_dgrad_var
Derivative of Grad porepressure in each phase wrt grad(PorousFlow variables)
const unsigned _num_vars
Number of PorousFlow variables.
const MaterialProperty< std::vector< std::vector< RealGradient > > > & _dgrad_p_dvar
Derivative of Grad porepressure in each phase wrt PorousFlow variables.
std::vector< std::vector< std::map< dof_id_type, std::vector< Real > > > > _dkij_dvar
_dkij_dvar[sequential_i][j][global_k][a] = d(K[sequential_i][j])/d(porous_flow_variable[global_k][por...
const RealVectorValue _gravity
Gravity.
InputParameters validParams< PorousFlowAdvectiveFluxCalculatorBase >()
Base class to compute Advective fluxes.
const PorousFlowDictator & _dictator
PorousFlowDictator UserObject.
const VariablePhiGradient & _grad_phi
grad(Kuzmin-Turek shape function)
const unsigned int _phase
The phase.
const MaterialProperty< std::vector< std::vector< RealTensorValue > > > & _dpermeability_dgradvar
d(permeabiity)/d(grad(PorousFlow variable))
Base class to compute the advective flux of fluid in PorousFlow situations using the Kuzmin-Turek FEM...
const MaterialProperty< std::vector< RealTensorValue > > & _dpermeability_dvar
d(permeabiity)/d(PorousFlow variable)
std::vector< std::vector< Real > > _du_dvar
_du_dvar[sequential_i][a] = d(u[global version of sequential node i])/d(porous_flow_variable[a])
virtual void exchangeGhostedInfo() override
Sends and receives multi-processor information regarding u_nodal and k_ij.
std::map< processor_id_type, std::vector< dof_id_type > > _triples_to_receive
_triples_to_receive[proc_id] indicates the dk(i, j)/du_nodal information that we will receive from pr...
virtual void timestepSetup() override
virtual void finalize() override
const bool _perm_derivs
Flag to check whether permeabiity derivatives are non-zero.
virtual void execute() override
PorousFlowAdvectiveFluxCalculatorBase(const InputParameters ¶meters)
const MaterialProperty< RealTensorValue > & _permeability
Permeability of porous material.