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 "BoxMarker.h" 11 : #include "MooseUtils.h" 12 : 13 : registerMooseObject("MooseApp", BoxMarker); 14 : 15 : InputParameters 16 15792 : BoxMarker::validParams() 17 : { 18 15792 : InputParameters params = Marker::validParams(); 19 15792 : params.addRequiredParam<RealVectorValue>( 20 : "bottom_left", "The bottom left point (in x,y,z with spaces in-between)."); 21 15792 : params.addRequiredParam<RealVectorValue>( 22 : "top_right", "The bottom left point (in x,y,z with spaces in-between)."); 23 : 24 15792 : MooseEnum marker_states = Marker::markerStates(); 25 : 26 15792 : params.addRequiredParam<MooseEnum>( 27 : "inside", marker_states, "How to mark elements inside the box."); 28 15792 : params.addRequiredParam<MooseEnum>( 29 : "outside", marker_states, "How to mark elements outside the box."); 30 : 31 15792 : params.addClassDescription( 32 : "Marks the region inside and outside of a 'box' domain for refinement or coarsening."); 33 31584 : return params; 34 15792 : } 35 : 36 795 : BoxMarker::BoxMarker(const InputParameters & parameters) 37 : : Marker(parameters), 38 795 : _inside(parameters.get<MooseEnum>("inside").getEnum<MarkerValue>()), 39 795 : _outside(parameters.get<MooseEnum>("outside").getEnum<MarkerValue>()), 40 795 : _bounding_box(MooseUtils::buildBoundingBox(parameters.get<RealVectorValue>("bottom_left"), 41 1590 : parameters.get<RealVectorValue>("top_right"))) 42 : { 43 795 : } 44 : 45 : Marker::MarkerValue 46 276304 : BoxMarker::computeElementMarker() 47 : { 48 276304 : RealVectorValue centroid = _current_elem->vertex_average(); 49 : 50 276304 : if (_bounding_box.contains_point(centroid)) 51 76932 : return _inside; 52 : 53 199372 : return _outside; 54 : }