https://mooseframework.inl.gov
ExtraIDIntegralVectorPostprocessor.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
13 
19 {
20 public:
23 
24  virtual void initialize() override;
25  virtual void execute() override;
26  virtual void finalize() override;
27  virtual void threadJoin(const UserObject & uo) override;
29  const std::vector<VectorPostprocessorValue *> & getUniqueExtraIds() const { return _extra_ids; };
31  const std::vector<VectorPostprocessorValue *> & getIntegrals() const { return _integrals; };
32 
33 protected:
35  const bool _average;
37  const unsigned int _nvar;
39  const unsigned int _nprop;
41  const std::vector<MaterialPropertyName> _prop_names;
43  const std::vector<ExtraElementIDName> _extra_id;
45  const unsigned int _n_extra_id;
46  // Map of element ids to parsed vpp ids
47  std::unordered_map<dof_id_type, dof_id_type> _unique_vpp_ids;
49  std::vector<VectorPostprocessorValue *> _extra_ids;
51  std::vector<const MooseVariable *> _vars;
53  std::vector<const VariableValue *> _var_values;
55  std::vector<const MaterialProperty<Real> *> _props;
57  std::vector<VectorPostprocessorValue *> _integrals;
59  std::vector<Real> _volumes;
60 };
const unsigned int _nprop
Number of material properties to be integrated.
virtual void execute() override
Execute method.
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.
std::vector< VectorPostprocessorValue * > _integrals
Vectors holding integrals over extra IDs.
std::vector< const MooseVariable * > _vars
Coupled MOOSE variables to be integrated.
const unsigned int _n_extra_id
Number of extra IDs in use.
std::vector< const VariableValue * > _var_values
Quadrature point values of coupled MOOSE variables.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
std::vector< VectorPostprocessorValue * > _extra_ids
Vectors holding extra IDs.
const std::vector< VectorPostprocessorValue * > & getUniqueExtraIds() const
Return extra ID list.
const std::vector< MaterialPropertyName > _prop_names
Name of material properties.
ExtraIDIntegralVectorPostprocessor(const InputParameters &parameters)
virtual void threadJoin(const UserObject &uo) override
Must override.
Base class VectorPostprocessors operating on elemental variables.
const unsigned int _nvar
Number of variables to be integrated.
const bool _average
whether or not to compute volume average
const std::vector< ExtraElementIDName > _extra_id
Extra IDs in use.
std::unordered_map< dof_id_type, dof_id_type > _unique_vpp_ids
const std::vector< VectorPostprocessorValue * > & getIntegrals() const
Return Integral values.
std::vector< Real > _volumes
Vector holding the volume of extra IDs.
This ExtraIDIntegralVectorPostprocessor source code is to integrate variables based on parsed extra I...
std::vector< const MaterialProperty< Real > * > _props
Material properties to be integrated.
const InputParameters & parameters() const
Get the parameters of the object.
Base class for user-specific data.
Definition: UserObject.h:40