Line data Source code
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 "LineMaterialRankTwoScalarSampler.h" 11 : #include "RankTwoScalarTools.h" 12 : 13 : registerMooseObject("SolidMechanicsApp", LineMaterialRankTwoScalarSampler); 14 : 15 : InputParameters 16 12 : LineMaterialRankTwoScalarSampler::validParams() 17 : { 18 12 : InputParameters params = LineMaterialSamplerBase<Real>::validParams(); 19 12 : params.addClassDescription("Compute a scalar property of a RankTwoTensor"); 20 24 : params.addParam<MooseEnum>( 21 24 : "scalar_type", RankTwoScalarTools::scalarOptions(), "A scalar to output"); 22 12 : params.addParam<Point>( 23 : "point1", 24 12 : Point(0, 0, 0), 25 : "Start point for axis used to calculate some cylindrical material tensor quantities"); 26 12 : params.addParam<Point>("point2", 27 12 : Point(0, 1, 0), 28 : "End point for axis used to calculate some material tensor quantities"); 29 24 : params.addParam<Point>("direction", Point(0, 0, 1), "Direction vector"); 30 12 : return params; 31 0 : } 32 : 33 6 : LineMaterialRankTwoScalarSampler::LineMaterialRankTwoScalarSampler( 34 6 : const InputParameters & parameters) 35 : : LineMaterialSamplerBase<RankTwoTensor>(parameters), 36 12 : _scalar_type(getParam<MooseEnum>("scalar_type")), 37 6 : _point1(parameters.get<Point>("point1")), 38 6 : _point2(parameters.get<Point>("point2")), 39 12 : _direction(parameters.get<Point>("direction") / parameters.get<Point>("direction").norm()) 40 : { 41 6 : } 42 : 43 : Real 44 640 : LineMaterialRankTwoScalarSampler::getScalarFromProperty(const RankTwoTensor & property, 45 : const Point & curr_point) 46 : { 47 640 : return RankTwoScalarTools::getQuantity( 48 640 : property, _scalar_type, _point1, _point2, curr_point, _direction); 49 : }