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