www.mooseframework.org
HeatSourceBPD.C
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 #include "HeatSourceBPD.h"
11 #include "PeridynamicsMesh.h"
12 #include "Function.h"
13 
14 registerMooseObject("PeridynamicsApp", HeatSourceBPD);
15 
16 template <>
17 InputParameters
19 {
20  InputParameters params = validParams<PeridynamicsKernelBase>();
21  params.addClassDescription("Class for calculating residual from heat source for bond-based "
22  "peridynamic heat conduction formulation");
23 
24  params.addRequiredParam<FunctionName>("power_density", "Volumetric heat source density");
25 
26  return params;
27 }
28 
29 HeatSourceBPD::HeatSourceBPD(const InputParameters & parameters)
30  : PeridynamicsKernelBase(parameters), _power_density(getFunction("power_density"))
31 {
32 }
33 
34 void
36 {
37  Point p;
38  for (unsigned int i = 0; i < _nnodes; ++i)
39  {
40  std::vector<dof_id_type> neighbors = _pdmesh.getNeighbors(_current_elem->node_id(i));
41  _local_re(i) = -_power_density.value(_t, p) * _vols_ij[i] / neighbors.size();
42  }
43 }
validParams< PeridynamicsKernelBase >
InputParameters validParams< PeridynamicsKernelBase >()
Definition: PeridynamicsKernelBase.C:15
registerMooseObject
registerMooseObject("PeridynamicsApp", HeatSourceBPD)
validParams< HeatSourceBPD >
InputParameters validParams< HeatSourceBPD >()
Definition: HeatSourceBPD.C:18
PeridynamicsMesh.h
HeatSourceBPD::HeatSourceBPD
HeatSourceBPD(const InputParameters &parameters)
Definition: HeatSourceBPD.C:29
HeatSourceBPD
Kernel class to implement hear source term for peridynamic heat conduction models.
Definition: HeatSourceBPD.h:22
PeridynamicsKernelBase::_nnodes
const unsigned int _nnodes
Definition: PeridynamicsKernelBase.h:64
HeatSourceBPD::computeLocalResidual
virtual void computeLocalResidual() override
Function to compute local contribution to the residual at the current nodes.
Definition: HeatSourceBPD.C:35
HeatSourceBPD.h
PeridynamicsKernelBase
Base kernel class for peridynamic models.
Definition: PeridynamicsKernelBase.h:25
PeridynamicsKernelBase::_pdmesh
PeridynamicsMesh & _pdmesh
Parameters for peridynamic mesh information.
Definition: PeridynamicsKernelBase.h:62
PeridynamicsMesh::getNeighbors
std::vector< dof_id_type > getNeighbors(dof_id_type node_id)
Function to return neighbor nodes indices for node node_id.
Definition: PeridynamicsMesh.C:362
HeatSourceBPD::_power_density
const Function & _power_density
Power density function.
Definition: HeatSourceBPD.h:31
PeridynamicsKernelBase::_vols_ij
std::vector< Real > _vols_ij
Definition: PeridynamicsKernelBase.h:65