www.mooseframework.org
AverageGrainVolume.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
12 #include "GeneralPostprocessor.h"
13 #include "Coupleable.h"
14 #include "MooseVariableDependencyInterface.h"
15 
16 // Forward Declarations
17 class FeatureFloodCount;
18 class AverageGrainVolume;
19 class MooseMesh;
20 template <>
21 InputParameters validParams<AverageGrainVolume>();
22 
26 class AverageGrainVolume : public GeneralPostprocessor,
27  public Coupleable,
28  public MooseVariableDependencyInterface
29 {
30 public:
31  AverageGrainVolume(const InputParameters & parameters);
32  virtual void initialize() override;
33  virtual void execute() override;
34  virtual Real getValue() override;
35 
36 protected:
37  void accumulateVolumes(const std::vector<unsigned int> & var_to_features,
38  std::size_t libmesh_dbg_var(num_features));
39  Real computeIntegral(std::size_t var_index) const;
40 
41 private:
43  MooseMesh & _mesh;
44  Assembly & _assembly;
45  std::vector<unsigned int> _static_var_to_feature;
46  std::vector<const VariableValue *> _vals;
47  std::vector<Real> _feature_volumes;
48  const MooseArray<Point> & _q_point;
49  const QBase * const & _qrule;
50  const MooseArray<Real> & _JxW;
51  const MooseArray<Real> & _coord;
53 };
AverageGrainVolume::_coord
const MooseArray< Real > & _coord
Definition: AverageGrainVolume.h:51
AverageGrainVolume::execute
virtual void execute() override
Definition: AverageGrainVolume.C:107
AverageGrainVolume::accumulateVolumes
void accumulateVolumes(const std::vector< unsigned int > &var_to_features, std::size_t libmesh_dbg_var(num_features))
Definition: AverageGrainVolume.C:124
FeatureFloodCount
This object will mark nodes or elements of continuous regions all with a unique number for the purpos...
Definition: FeatureFloodCount.h:44
AverageGrainVolume
Compute the average grain area in a polycrystal.
Definition: AverageGrainVolume.h:26
AverageGrainVolume::computeIntegral
Real computeIntegral(std::size_t var_index) const
Definition: AverageGrainVolume.C:142
AverageGrainVolume::AverageGrainVolume
AverageGrainVolume(const InputParameters &parameters)
Definition: AverageGrainVolume.C:45
AverageGrainVolume::_static_var_to_feature
std::vector< unsigned int > _static_var_to_feature
Definition: AverageGrainVolume.h:45
AverageGrainVolume::_feature_volumes
std::vector< Real > _feature_volumes
Definition: AverageGrainVolume.h:47
AverageGrainVolume::_assembly
Assembly & _assembly
Definition: AverageGrainVolume.h:44
AverageGrainVolume::_JxW
const MooseArray< Real > & _JxW
Definition: AverageGrainVolume.h:50
AverageGrainVolume::_vals
std::vector< const VariableValue * > _vals
Definition: AverageGrainVolume.h:46
AverageGrainVolume::_mesh
MooseMesh & _mesh
A reference to the mesh.
Definition: AverageGrainVolume.h:43
AverageGrainVolume::getValue
virtual Real getValue() override
Definition: AverageGrainVolume.C:153
AverageGrainVolume::initialize
virtual void initialize() override
Definition: AverageGrainVolume.C:95
AverageGrainVolume::_qrule
const QBase *const & _qrule
Definition: AverageGrainVolume.h:49
validParams< AverageGrainVolume >
InputParameters validParams< AverageGrainVolume >()
Definition: AverageGrainVolume.C:22
AverageGrainVolume::_feature_counter
const FeatureFloodCount * _feature_counter
Definition: AverageGrainVolume.h:52
AverageGrainVolume::_q_point
const MooseArray< Point > & _q_point
Definition: AverageGrainVolume.h:48