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 "Action.h" 13 : // libMesh 14 : #include "libmesh/enum_order.h" 15 : #include "libmesh/enum_quadrature_type.h" 16 : 17 : /** 18 : * Sets the quadrature 19 : */ 20 : class SetupQuadratureAction : public Action 21 : { 22 : public: 23 : static InputParameters validParams(); 24 : 25 : SetupQuadratureAction(const InputParameters & parameters); 26 : 27 : virtual void act() override; 28 : 29 : /// Return the possible selections for the type of the quadrature 30 76454 : static MooseEnum getQuadratureTypesEnum() 31 : { 32 76454 : return MooseEnum("CLOUGH CONICAL GAUSS GRID MONOMIAL SIMPSON TRAP GAUSS_LOBATTO", "GAUSS"); 33 : } 34 : /// Return the potential selections for the order of the quadrature, with an 'auto' default 35 200736 : static MooseEnum getQuadratureOrderEnum() 36 : { 37 : return MooseEnum( 38 : "AUTO CONSTANT FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH NINTH TENTH " 39 : "ELEVENTH TWELFTH THIRTEENTH FOURTEENTH FIFTEENTH SIXTEENTH SEVENTEENTH " 40 : "EIGHTTEENTH NINTEENTH TWENTIETH", 41 200736 : "AUTO"); 42 : } 43 : /// A MultiMooseEnum for selecting multiple quadrature orders 44 62141 : static MultiMooseEnum getQuadratureOrdersMultiEnum() 45 : { 46 : return MultiMooseEnum( 47 : "CONSTANT FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH NINTH TENTH " 48 : "ELEVENTH TWELFTH THIRTEENTH FOURTEENTH FIFTEENTH SIXTEENTH SEVENTEENTH " 49 62141 : "EIGHTTEENTH NINTEENTH TWENTIETH"); 50 : } 51 : 52 : protected: 53 : libMesh::QuadratureType _type; 54 : Order _order; 55 : Order _element_order; 56 : Order _side_order; 57 : const std::vector<std::pair<SubdomainID, MooseEnumItem>> _custom_block_orders; 58 : const bool _allow_negative_qweights; 59 : };