Line data Source code
1 : /**********************************************************************/ 2 : /* DO NOT MODIFY THIS HEADER */ 3 : /* Swift, a Fourier spectral solver for MOOSE */ 4 : /* */ 5 : /* Copyright 2024 Battelle Energy Alliance, LLC */ 6 : /* ALL RIGHTS RESERVED */ 7 : /**********************************************************************/ 8 : 9 : #pragma once 10 : 11 : #include "MooseMesh.h" 12 : #include "DomainInterface.h" 13 : 14 : /** 15 : * Mesh generated from parameters 16 : */ 17 : class UniformTensorMesh : public MooseMesh 18 : { 19 : public: 20 : static InputParameters validParams(); 21 : 22 : UniformTensorMesh(const InputParameters & parameters); 23 0 : UniformTensorMesh(const UniformTensorMesh & /* other_mesh */) = default; 24 : 25 : // No copy 26 : UniformTensorMesh & operator=(const UniformTensorMesh & other_mesh) = delete; 27 : 28 : virtual std::unique_ptr<MooseMesh> safeClone() const override; 29 : 30 : unsigned int getDim() const { return _dim; } 31 : 32 : virtual void buildMesh() override; 33 : unsigned int getElementsInDimension(unsigned int component) const; 34 : virtual Real getMinInDimension(unsigned int component) const override; 35 : virtual Real getMaxInDimension(unsigned int component) const override; 36 : virtual void prepared(bool state) override; 37 : 38 : protected: 39 : /// The dimension of the mesh 40 : MooseEnum _dim; 41 : 42 : /// Number of elements in x, y, z direction 43 : unsigned int _nx, _ny, _nz; 44 : 45 : /// The max values for x,y,z component 46 : Real _xmax, _ymax, _zmax; 47 : };