https://mooseframework.inl.gov
HeatConductionBPD.C
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 #include "HeatConductionBPD.h"
11 
12 registerMooseObject("PeridynamicsApp", HeatConductionBPD);
13 
16 {
18  params.addClassDescription("Class for calculating the residual and Jacobian for the bond-based "
19  "peridynamic heat conduction formulation");
20 
21  return params;
22 }
23 
25  : PeridynamicsKernelBase(parameters),
26  _bond_heat_flow(getMaterialProperty<Real>("bond_heat_flow")),
27  _bond_dQdT(getMaterialProperty<Real>("bond_dQdT"))
28 {
29 }
30 
31 void
33 {
35  _local_re(1) = -_local_re(0);
36 }
37 
38 void
40 {
41  for (unsigned int i = 0; i < _nnodes; ++i)
42  for (unsigned int j = 0; j < _nnodes; ++j)
43  _local_ke(i, j) += -1 * (i == j ? 1 : -1) * _bond_dQdT[0] * _bond_status;
44 }
Base kernel class for peridynamic models.
virtual void computeLocalJacobian() override
Function to compute local contribution to the diagonal Jacobian at the current nodes.
Real _bond_status
Bond status of current bond/edge2.
const MaterialProperty< Real > & _bond_dQdT
DenseMatrix< Number > _local_ke
Kernel class for peridynamic heat conduction models.
static InputParameters validParams()
HeatConductionBPD(const InputParameters &parameters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static InputParameters validParams()
DenseVector< Number > _local_re
void addClassDescription(const std::string &doc_string)
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
const MaterialProperty< Real > & _bond_heat_flow
Bond based material properties.
virtual void computeLocalResidual() override
Function to compute local contribution to the residual at the current nodes.
registerMooseObject("PeridynamicsApp", HeatConductionBPD)