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 : #pragma once 11 : 12 : #include "SolutionUserObject.h" 13 : 14 : // Forward Declarations 15 : 16 : /** 17 : * This Userobject is the base class of Userobjects that generate one 18 : * random number per timestep and quadrature point in a way that the integral 19 : * over all random numbers is zero. This can be used for a concentration fluctuation 20 : * kernel such as ConservedLangevinNoise, that keeps the total concenration constant. 21 : * 22 : * \see ConservedUniformNoise 23 : */ 24 : class SolutionRasterizer : public SolutionUserObject 25 : { 26 : public: 27 : static InputParameters validParams(); 28 : 29 : SolutionRasterizer(const InputParameters & parameters); 30 : 31 33 : virtual ~SolutionRasterizer() {} 32 : 33 : /// Initialize the System and Mesh objects for the solution being read 34 : virtual void initialSetup(); 35 : 36 : protected: 37 : FileName _xyz_input; 38 : FileName _xyz_output; 39 : 40 : std::string _variable; 41 : 42 : MooseEnum _raster_mode; 43 : 44 : Real _threshold; 45 : };