NEMoSys
0.63.0
A modular, extensible resource with robust automated mesh generation, mesh quality analysis, adaptive mesh refinement, and data transfer between arbitrary meshes.
SizeFieldRefineDriver.H
Go to the documentation of this file.
1
/*******************************************************************************
2
* Promesh *
3
* Copyright (C) 2022, IllinoisRocstar LLC. All rights reserved. *
4
* *
5
* Promesh is the property of IllinoisRocstar LLC. *
6
* *
7
* IllinoisRocstar LLC *
8
* Champaign, IL *
9
* www.illinoisrocstar.com *
10
* promesh@illinoisrocstar.com *
11
*******************************************************************************/
12
/*******************************************************************************
13
* This file is part of Promesh *
14
* *
15
* This version of Promesh is free software: you can redistribute it and/or *
16
* modify it under the terms of the GNU Lesser General Public License as *
17
* published by the Free Software Foundation, either version 3 of the License, *
18
* or (at your option) any later version. *
19
* *
20
* Promesh is distributed in the hope that it will be useful, but WITHOUT ANY *
21
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS *
22
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more *
23
* details. *
24
* *
25
* You should have received a copy of the GNU Lesser General Public License *
26
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
27
* *
28
*******************************************************************************/
29
#ifndef NEMOSYS_SIZEFIELDREFINEDRIVER_H_
30
#define NEMOSYS_SIZEFIELDREFINEDRIVER_H_
31
32
#include "nemosys_export.h"
33
#include "
Drivers/Refine/RefineDriver.H
"
34
35
namespace
NEM
{
36
namespace
DRV {
37
38
class
NEMOSYS_EXPORT
SizeFieldRefineDriver
:
public
RefineDriver
{
39
public
:
40
struct
NEMOSYS_EXPORT
Opts
{
41
public
:
42
enum class
Method
{ VALUE, GRADIENT };
43
Opts
(
Method
method, std::string arrayName,
double
stdDevMult,
44
bool
maxIsMin,
bool
transferData);
45
Method
method{};
46
std::string arrayName{};
47
double
stdDevMult{};
48
bool
maxIsMin{};
49
bool
transferData{};
50
double
sizeFactor{1.};
51
std::string getMethodStr()
const
;
52
JSONCONS_TYPE_TRAITS_FRIEND
53
private
:
54
Opts
() =
default
;
55
static
constexpr
const
char
*valStr =
"value"
;
56
static
constexpr
const
char
*gradStr =
"gradient"
;
57
};
58
59
SizeFieldRefineDriver
(
Files
files,
Opts
opts);
60
61
const
Opts
&getOpts()
const
;
62
void
setOpts(
Opts
opts);
63
void
execute()
const override
;
64
65
JSONCONS_TYPE_TRAITS_FRIEND
66
67
private
:
68
SizeFieldRefineDriver
();
69
70
Opts
opts_
;
71
};
72
73
}
// namespace DRV
74
}
// namespace NEM
75
76
#endif // NEMOSYS_SIZEFIELDREFINEDRIVER_H_
NEM::DRV::SizeFieldRefineDriver
Definition:
SizeFieldRefineDriver.H:38
NEM::DRV::SizeFieldRefineDriver::Opts::Method
Method
Definition:
SizeFieldRefineDriver.H:42
RefineDriver.H
NEM::DRV::SizeFieldRefineDriver::opts_
Opts opts_
Definition:
SizeFieldRefineDriver.H:70
NEM::DRV::RefineDriver
Definition:
RefineDriver.H:40
NEM
Definition:
AutoVerificationDriver.C:38
NEM::DRV::DriverInOutFiles
Definition:
NemDriver.H:86
NEM::DRV::SizeFieldRefineDriver::Opts
Definition:
SizeFieldRefineDriver.H:40
include
Drivers
Refine
SizeFieldRefineDriver.H
Generated on Wed Jan 26 2022 16:40:02 for NEMoSys by
1.8.13