Cardinal
ClusteringUserObjectBase.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "GeneralUserObject.h"
4 
5 class AuxiliarySystem;
6 
7 /* Base class for clustering in cardinal. */
8 class ClusteringUserObjectBase : public GeneralUserObject
9 {
10 
11 public:
12  static InputParameters validParams();
13  ClusteringUserObjectBase(const InputParameters & parameters);
14 
15  virtual void execute() override {};
16  virtual void initialize() override;
17  virtual void finalize() override {};
18 
26  virtual bool evaluate(libMesh::Elem * base_element, libMesh::Elem * neighbor_elem) const = 0;
27 
28 protected:
34  Real getMetricData(const libMesh::Elem * elem) const;
35 
37  libMesh::MeshBase & _mesh;
38 
40  const AuxVariableName _metric_variable_name;
41 
43  const MooseVariableBase & _metric_variable;
44 
46  AuxiliarySystem & _auxiliary_system;
47 
49  const libMesh::DofMap & _dof_map;
50 
52  const unsigned int _metric_variable_index;
53 
55  NumericVector<Real> & _serialized_metric_solution;
56 };
ClusteringUserObjectBase(const InputParameters &parameters)
Definition: ClusteringUserObjectBase.C:17
const AuxVariableName _metric_variable_name
Name of the metric variable based on which clustering is done.
Definition: ClusteringUserObjectBase.h:40
virtual bool evaluate(libMesh::Elem *base_element, libMesh::Elem *neighbor_elem) const =0
Definition: ClusteringUserObjectBase.h:8
virtual void finalize() override
Definition: ClusteringUserObjectBase.h:17
static InputParameters validParams()
Definition: ClusteringUserObjectBase.C:8
const MooseVariableBase & _metric_variable
Metric variable.
Definition: ClusteringUserObjectBase.h:43
libMesh::MeshBase & _mesh
Mesh reference.
Definition: ClusteringUserObjectBase.h:37
const unsigned int _metric_variable_index
Metric variable index.
Definition: ClusteringUserObjectBase.h:52
virtual void initialize() override
Definition: ClusteringUserObjectBase.C:37
virtual void execute() override
Definition: ClusteringUserObjectBase.h:15
const libMesh::DofMap & _dof_map
DOF map.
Definition: ClusteringUserObjectBase.h:49
AuxiliarySystem & _auxiliary_system
AuxiliarySystem reference.
Definition: ClusteringUserObjectBase.h:46
NumericVector< Real > & _serialized_metric_solution
libmesh numeric vector with serialized solutions
Definition: ClusteringUserObjectBase.h:55
Real getMetricData(const libMesh::Elem *elem) const
Definition: ClusteringUserObjectBase.C:43