www.mooseframework.org
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
GeneralizedPlaneStrain Class Reference

#include <GeneralizedPlaneStrain.h>

Inheritance diagram for GeneralizedPlaneStrain:
[legend]

Public Member Functions

 GeneralizedPlaneStrain (const InputParameters &parameters)
 
virtual void reinit ()
 
virtual void computeResidual ()
 
virtual void computeJacobian ()
 method to provide the diagonal jacobian term for scalar variable using value returned from Postprocessor, off diagonal terms are computed by computeOffDiagJacobianScalar in the kernel of nonlinear variables which needs to couple with the scalar variable More...
 

Static Public Member Functions

static InputParameters validParams ()
 

Public Attributes

const GeneralizedPlaneStrainUserObject_gps
 
const unsigned int _scalar_var_id
 
std::set< TagID > _ref_tag_id
 The reference vector tag ID. More...
 
std::set< TagID > _non_ref_tags
 The non-reference vector tag IDs. More...
 

Detailed Description

Definition at line 23 of file GeneralizedPlaneStrain.h.

Constructor & Destructor Documentation

◆ GeneralizedPlaneStrain()

GeneralizedPlaneStrain::GeneralizedPlaneStrain ( const InputParameters &  parameters)

Definition at line 40 of file GeneralizedPlaneStrain.C.

41  : ScalarKernel(parameters),
42  _gps(getUserObject<GeneralizedPlaneStrainUserObject>("generalized_plane_strain")),
43  _scalar_var_id(isParamValid("scalar_out_of_plane_strain_index")
44  ? getParam<unsigned int>("scalar_out_of_plane_strain_index")
45  : 0)
46 {
47  auto fe_problem_base = getCheckedPointerParam<FEProblemBase *>("_fe_problem_base");
48  if (auto ref_resid_problem = dynamic_cast<ReferenceResidualProblem *>(fe_problem_base))
49  {
50  const auto & ref_parameters = ref_resid_problem->parameters();
51  if (isParamValid("extra_vector_tags") && ref_parameters.isParamValid("reference_vector"))
52  {
53  const auto & reference_vector_tag_name = ref_parameters.get<TagName>("reference_vector");
54  const auto & extra_vector_tag_names = getParam<std::vector<TagName>>("extra_vector_tags");
55  if (std::find(extra_vector_tag_names.begin(),
56  extra_vector_tag_names.end(),
57  reference_vector_tag_name) != extra_vector_tag_names.end())
58  {
59  _ref_tag_id.insert(_subproblem.getVectorTagID(reference_vector_tag_name));
60  std::set_difference(_vector_tags.begin(),
61  _vector_tags.end(),
62  _ref_tag_id.begin(),
63  _ref_tag_id.end(),
64  std::inserter(_non_ref_tags, _non_ref_tags.begin()));
65  }
66  }
67  }
68 }

Member Function Documentation

◆ computeJacobian()

void GeneralizedPlaneStrain::computeJacobian ( )
virtual

method to provide the diagonal jacobian term for scalar variable using value returned from Postprocessor, off diagonal terms are computed by computeOffDiagJacobianScalar in the kernel of nonlinear variables which needs to couple with the scalar variable

Definition at line 100 of file GeneralizedPlaneStrain.C.

101 {
102  prepareMatrixTag(_assembly, _var.number(), _var.number());
103  for (_i = 0; _i < _local_ke.m(); ++_i)
104  _local_ke(_i, _i) += _gps.returnJacobian(_scalar_var_id);
105 
106  accumulateTaggedLocalMatrix();
107 }

◆ computeResidual()

void GeneralizedPlaneStrain::computeResidual ( )
virtual

Definition at line 71 of file GeneralizedPlaneStrain.C.

72 {
73  if (!_ref_tag_id.empty())
74  _vector_tags = _non_ref_tags;
75 
76  prepareVectorTag(_assembly, _var.number());
77  for (_i = 0; _i < _local_re.size(); ++_i)
78  _local_re(_i) += _gps.returnResidual(_scalar_var_id);
79 
80  accumulateTaggedLocalResidual();
81 
82  if (!_ref_tag_id.empty())
83  {
84  _vector_tags = _ref_tag_id;
85 
86  prepareVectorTag(_assembly, _var.number());
87  for (_i = 0; _i < _local_re.size(); ++_i)
89 
90  accumulateTaggedLocalResidual();
91  }
92 }

◆ reinit()

virtual void GeneralizedPlaneStrain::reinit ( )
inlinevirtual

Definition at line 30 of file GeneralizedPlaneStrain.h.

30 {};

◆ validParams()

InputParameters GeneralizedPlaneStrain::validParams ( )
static

Definition at line 27 of file GeneralizedPlaneStrain.C.

28 {
29  InputParameters params = ScalarKernel::validParams();
30  params.addClassDescription("Generalized Plane Strain Scalar Kernel");
31  params.addRequiredParam<UserObjectName>("generalized_plane_strain",
32  "The name of the GeneralizedPlaneStrainUserObject");
33  params.addParam<unsigned int>(
34  "scalar_out_of_plane_strain_index",
35  "The index number of scalar_out_of_plane_strain this kernel acts on");
36 
37  return params;
38 }

Member Data Documentation

◆ _gps

const GeneralizedPlaneStrainUserObject& GeneralizedPlaneStrain::_gps

Definition at line 34 of file GeneralizedPlaneStrain.h.

Referenced by computeJacobian(), and computeResidual().

◆ _non_ref_tags

std::set<TagID> GeneralizedPlaneStrain::_non_ref_tags

The non-reference vector tag IDs.

Definition at line 41 of file GeneralizedPlaneStrain.h.

Referenced by computeResidual(), and GeneralizedPlaneStrain().

◆ _ref_tag_id

std::set<TagID> GeneralizedPlaneStrain::_ref_tag_id

The reference vector tag ID.

Definition at line 38 of file GeneralizedPlaneStrain.h.

Referenced by computeResidual(), and GeneralizedPlaneStrain().

◆ _scalar_var_id

const unsigned int GeneralizedPlaneStrain::_scalar_var_id

Definition at line 35 of file GeneralizedPlaneStrain.h.

Referenced by computeJacobian(), and computeResidual().


The documentation for this class was generated from the following files:
GeneralizedPlaneStrain::_ref_tag_id
std::set< TagID > _ref_tag_id
The reference vector tag ID.
Definition: GeneralizedPlaneStrain.h:38
GeneralizedPlaneStrain::_gps
const GeneralizedPlaneStrainUserObject & _gps
Definition: GeneralizedPlaneStrain.h:34
GeneralizedPlaneStrainUserObject::returnJacobian
virtual Real returnJacobian(unsigned int scalar_var_id=0) const
Definition: GeneralizedPlaneStrainUserObject.C:147
GeneralizedPlaneStrainUserObject::returnResidual
virtual Real returnResidual(unsigned int scalar_var_id=0) const
Definition: GeneralizedPlaneStrainUserObject.C:123
GeneralizedPlaneStrainUserObject::returnReferenceResidual
virtual Real returnReferenceResidual(unsigned int scalar_var_id=0) const
Definition: GeneralizedPlaneStrainUserObject.C:132
validParams
InputParameters validParams()
GeneralizedPlaneStrain::_scalar_var_id
const unsigned int _scalar_var_id
Definition: GeneralizedPlaneStrain.h:35
GeneralizedPlaneStrain::_non_ref_tags
std::set< TagID > _non_ref_tags
The non-reference vector tag IDs.
Definition: GeneralizedPlaneStrain.h:41