39 Omega_h_Transfer method)
40 : arrayName(
std::move(arrayName)), method(method) {}
43 : integralName(
std::move(integralName)) {
45 this->
type =
"Relative";
51 std::vector<NEM::SRV::omegahRefineMetricSource>
sources)
52 : MetricSources(
std::move(sources)) {}
67 auto inMesh = vtkSmartPointer<NEM::MSH::geoMeshBase>::Take(
70 inMesh->reconstructGeo();
72 vtkSmartPointer<NEM::MSH::oshGeoMesh> osh_mesh =
74 osh_mesh->takeGeoMesh(inMesh);
77 vtkSmartPointer<NEM::SRV::omegahRefineSrv> orSrv =
79 orSrv->AddInputDataObject(osh_mesh);
84 orSrv->AddMetricSource(ms.type, ms.knob, ms.tag_name, ms.isotropy,
95 orSrv->SetGradationConvergenceTolerance(
98 orSrv->SetShouldLimitElementCount(
105 orSrv->SetElementCountOverRelaxation(
141 orSrv->SetShouldPreventCoarsenFlip(
146 if (xfer.integralName) {
147 orSrv->AddTransferOpts(xfer.arrayName, xfer.method,
148 xfer.integralName.value());
150 orSrv->AddTransferOpts(xfer.arrayName, xfer.method);
154 orSrv->AddTransferOptsIntegralDiffuse(xfer.integralName, xfer.type,
155 xfer.tolerance, xfer.floor);
160 auto outMesh = vtkSmartPointer<NEM::MSH::geoMeshBase>::Take(
162 outMesh->takeGeoMesh(orSrv->GetOutput());
jsoncons::optional< bool > ShouldLimitElementCount
std::vector< VarCompare > TransferOptsIntegralDiffuse
std::string outputMeshFile
jsoncons::optional< Omega_h::Real > MaxLengthDesired
jsoncons::optional< bool > ShouldLimitGradation
jsoncons::optional< Omega_h::Int > NqualityHistogramBins
jsoncons::optional< Omega_h::Real > MinQualityAllowed
geoMeshBase * Read(const std::string &fileName)
Read a mesh from file.
jsoncons::optional< Omega_h::Real > LengthHistogramMax
geoMeshBase * New(MeshType meshType)
Create a new mesh object.
jsoncons::optional< bool > ShouldRefine
jsoncons::optional< std::string > Verbosity
jsoncons::optional< Omega_h::Real > MinQualityDesired
jsoncons::optional< Omega_h::Real > MinElementCount
jsoncons::optional< Omega_h::Int > NlengthHistogramBins
jsoncons::optional< bool > ShouldSwap
jsoncons::optional< Omega_h::Real > MaxLengthAllowed
jsoncons::optional< bool > ShouldCoarsenSlivers
jsoncons::optional< bool > ShouldCoarsen
std::string type
NONE, RELATIVE, or ABSOLUTE comparison of data.
jsoncons::optional< bool > ShouldLimitLengths
jsoncons::optional< Omega_h::Real > MinLength
void execute() const override
Run the workflow represented by the driver.
jsoncons::optional< Omega_h::Real > GradationConvergenceTolerance
jsoncons::optional< Omega_h::Real > MaxGradationRate
std::string inputMeshFile
jsoncons::optional< bool > Verbose
const Opts & getOpts() const
Omega_h::Real floor
RELATIVE: values below floor snap to 0.0.
Omega_h::Real tolerance
tolerance threshold for comparison
std::vector< Transfer > TransferOpts
jsoncons::optional< Omega_h::Real > MaxElementCount
jsoncons::optional< Omega_h::Int > NsliverLayers
jsoncons::optional< Omega_h::Real > LengthHistogramMin
jsoncons::optional< Omega_h::Real > MinLengthDesired
std::vector< NEM::SRV::omegahRefineMetricSource > MetricSources
jsoncons::optional< Omega_h::Real > MaxLength
jsoncons::optional< Omega_h::Real > ElementCountOverRelaxation
jsoncons::optional< std::string > integralName
jsoncons::optional< Omega_h::Int > NsmoothingSteps
jsoncons::optional< bool > ShouldPreventCoarsenFlip
std::array< vtkIdType, 2 > sources