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.
NEM::SRV::omegahRefineSrv Class Reference

A service to use the Omega_h library for refinement. More...

Detailed Description

Definition at line 92 of file omegahRefineSrv.H.

Public Member Functions

 vtkGetMacro (Verbose, bool)
 
 vtkBooleanMacro (Verbose, bool)
 
 vtkSetMacro (MinLengthDesired, Omega_h::Real)
 Specify the minimum desired length. More...
 
 vtkGetMacro (MinLengthDesired, Omega_h::Real)
 
void AddTransferOpts (const std::string &name, Omega_h_Transfer method, const std::string &integral_name="")
 Add a field to be transferred. More...
 
void AddTransferOptsIntegralDiffuse (const std::string &integral_name, const std::string &type, Omega_h::Real tolerance, Omega_h::Real floor)
 When specifying integral quantities, set tolerances. More...
 
void AddMetricSource (Omega_h_Source type, Omega_h::Real knob=1.0, std::string tag_name="", Omega_h_Isotropy isotropy=OMEGA_H_ANISOTROPIC, Omega_h_Scales scales=OMEGA_H_SCALES)
 Add a source to the metric input. More...
 
 vtkSetMacro (ShouldLimitLengths, bool)
 Specify if the metrics should limit the edge lengths. More...
 
 vtkGetMacro (ShouldLimitLengths, bool)
 
 vtkBooleanMacro (ShouldLimitLengths, bool)
 
 vtkSetMacro (MaxLength, Omega_h::Real)
 Specify the maximum length of the edges allowed by the metrics. More...
 
 vtkGetMacro (MaxLength, Omega_h::Real)
 
 vtkSetMacro (MinLength, Omega_h::Real)
 Specify the minimum length of the edges allowed by the metrics. More...
 
 vtkGetMacro (MinLength, Omega_h::Real)
 
 vtkSetMacro (ShouldLimitGradation, bool)
 Specify if the metrics should limit the gradation rate. More...
 
 vtkGetMacro (ShouldLimitGradation, bool)
 
 vtkBooleanMacro (ShouldLimitGradation, bool)
 
 vtkSetMacro (MaxGradationRate, Omega_h::Real)
 Specify the maximum gradation rate allowed by the metrics. More...
 
 vtkGetMacro (MaxGradationRate, Omega_h::Real)
 
 vtkSetMacro (GradationConvergenceTolerance, Omega_h::Real)
 Specify the tolerance used when limiting the gradation rate in the metrics. More...
 
 vtkGetMacro (GradationConvergenceTolerance, Omega_h::Real)
 
 vtkSetMacro (ShouldLimitElementCount, bool)
 Specify if the metrics should limit the element count. More...
 
 vtkGetMacro (ShouldLimitElementCount, bool)
 
 vtkBooleanMacro (ShouldLimitElementCount, bool)
 
 vtkSetMacro (MaxElementCount, Omega_h::Real)
 Specify the maximum element count allowed by the metrics. More...
 
 vtkGetMacro (MaxElementCount, Omega_h::Real)
 
 vtkSetMacro (MinElementCount, Omega_h::Real)
 Specify the minimum element count allowed by the metrics. More...
 
 vtkGetMacro (MinElementCount, Omega_h::Real)
 
 vtkSetMacro (ElementCountOverRelaxation, Omega_h::Real)
 Specify the over relaxation tolerance when limiting the element count. More...
 
 vtkGetMacro (ElementCountOverRelaxation, Omega_h::Real)
 
 vtkSetMacro (NsmoothingSteps, Omega_h::Int)
 Specify the number of smoothing steps when generating the metric. More...
 
 vtkGetMacro (NsmoothingSteps, Omega_h::Int)
 
 vtkSetMacro (MaxLengthDesired, Omega_h::Real)
 Specify the maximum desired length. More...
 
 vtkGetMacro (MaxLengthDesired, Omega_h::Real)
 
 vtkSetMacro (MaxLengthAllowed, Omega_h::Real)
 Specify the maximum allowed length. More...
 
 vtkGetMacro (MaxLengthAllowed, Omega_h::Real)
 
 vtkSetMacro (MinQualityAllowed, Omega_h::Real)
 Specify the minimum allowed length. More...
 
 vtkGetMacro (MinQualityAllowed, Omega_h::Real)
 
 vtkSetMacro (MinQualityDesired, Omega_h::Real)
 Specify the minimum desired quality. More...
 
 vtkGetMacro (MinQualityDesired, Omega_h::Real)
 
 vtkSetMacro (NsliverLayers, Omega_h::Int)
 Specify the number of sliver layers. More...
 
 vtkGetMacro (NsliverLayers, Omega_h::Int)
 
 vtkSetMacro (Verbosity, const std::string &)
 Specify the verbosity of the adaptation method. More...
 
 vtkGetMacro (Verbosity, const std::string &)
 
 vtkSetMacro (LengthHistogramMin, Omega_h::Real)
 Specify the minimum depth of the length histogram. More...
 
 vtkGetMacro (LengthHistogramMin, Omega_h::Real)
 
 vtkSetMacro (LengthHistogramMax, Omega_h::Real)
 Specify the maximum depth of the length histogram. More...
 
 vtkGetMacro (LengthHistogramMax, Omega_h::Real)
 
 vtkSetMacro (NlengthHistogramBins, Omega_h::Int)
 Specify the number of bins in the length histogram. More...
 
 vtkGetMacro (NlengthHistogramBins, Omega_h::Int)
 
 vtkSetMacro (NqualityHistogramBins, Omega_h::Int)
 Specify the number of bins in the quality histogram. More...
 
 vtkGetMacro (NqualityHistogramBins, Omega_h::Int)
 
 vtkSetMacro (ShouldRefine, bool)
 Specify if adapt should refine elements. More...
 
 vtkGetMacro (ShouldRefine, bool)
 
 vtkBooleanMacro (ShouldRefine, bool)
 
 vtkSetMacro (ShouldCoarsen, bool)
 Specify if adapt should coarsen elements. More...
 
 vtkGetMacro (ShouldCoarsen, bool)
 
 vtkBooleanMacro (ShouldCoarsen, bool)
 
 vtkSetMacro (ShouldSwap, bool)
 Specify if adapt should swap elements. More...
 
 vtkGetMacro (ShouldSwap, bool)
 
 vtkBooleanMacro (ShouldSwap, bool)
 
 vtkSetMacro (ShouldCoarsenSlivers, bool)
 Specify if adapt should coarsen slivers. More...
 
 vtkGetMacro (ShouldCoarsenSlivers, bool)
 
 vtkBooleanMacro (ShouldCoarsenSlivers, bool)
 
 vtkSetMacro (ShouldPreventCoarsenFlip, bool)
 Specify if adapt should prevent coarsen flips. More...
 
 vtkGetMacro (ShouldPreventCoarsenFlip, bool)
 
 vtkBooleanMacro (ShouldPreventCoarsenFlip, bool)
 
vtkAbstractTypeMacro(srvBase, vtkAlgorithm) public NEM::MSH::geoMeshBaseGetOutput ()
 Get the output GeoMeshBase for a port on this algorithm. More...
 
NEM::MSH::geoMeshBaseGetOutput (int)
 

Static Public Member Functions

static omegahRefineSrvNew ()
 

Public Attributes

 bool
 

Protected Member Functions

 omegahRefineSrv ()
 
 ~omegahRefineSrv () override
 
int RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
 This is called by the superclass. More...
 
int FillInputPortInformation (int port, vtkInformation *info) override
 
int FillOutputPortInformation (int port, vtkInformation *info) override
 
virtual int RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 
virtual int RequestDataObject (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 This is called by the superclass. More...
 
virtual int RequestUpdateExtent (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
 This is called by the superclass. More...
 

Private Attributes

bool Verbose {true}
 
std::vector< omegahRefineMetricSourceMetricSources
 
bool ShouldLimitLengths {false}
 
Omega_h::Real MaxLength {-1.0}
 
Omega_h::Real MinLength {-1.0}
 
bool ShouldLimitGradation {false}
 
Omega_h::Real MaxGradationRate {-1.0}
 
Omega_h::Real GradationConvergenceTolerance {-1.0}
 
bool ShouldLimitElementCount {false}
 
Omega_h::Real MaxElementCount {-1.0}
 
Omega_h::Real MinElementCount {-1.0}
 
Omega_h::Real ElementCountOverRelaxation {-1.0}
 
Omega_h::Int NsmoothingSteps {-1}
 
Omega_h::Real MinLengthDesired {-1.0}
 
Omega_h::Real MaxLengthDesired {-1.0}
 
Omega_h::Real MaxLengthAllowed {-1.0}
 
Omega_h::Real MinQualityAllowed {-1.0}
 
Omega_h::Real MinQualityDesired {-1.0}
 
Omega_h::Int NsliverLayers {-1}
 
std::string Verbosity {"Each Rebuild"}
 
Omega_h::Real LengthHistogramMin {-1.0}
 
Omega_h::Real LengthHistogramMax {-1.0}
 
Omega_h::Int NlengthHistogramBins {-1}
 
Omega_h::Int NqualityHistogramBins {-1}
 
bool ShouldRefine {true}
 
bool ShouldCoarsen {true}
 
bool ShouldSwap {true}
 
bool ShouldCoarsenSlivers {true}
 
bool ShouldPreventCoarsenFlip {false}
 
std::map< std::string, Omega_h_Transfer > TransferOptsTypeMap
 
std::map< std::string, std::string > TransferOptsIntegralMap
 
std::map< std::string, omegahRefineVarCompareOptsTransferOptsIntegralDiffuseMap
 

Inherits NEM::SRV::srvBase.

Constructor & Destructor Documentation

◆ omegahRefineSrv()

NEM::SRV::omegahRefineSrv::omegahRefineSrv ( )
protected

◆ ~omegahRefineSrv()

NEM::SRV::omegahRefineSrv::~omegahRefineSrv ( )
overrideprotected

Definition at line 79 of file omegahRefineSrv.C.

79  {
80  std::cout << "omegahRefineSrv destructed" << std::endl;
81 }

Member Function Documentation

◆ AddMetricSource()

void NEM::SRV::omegahRefineSrv::AddMetricSource ( Omega_h_Source  type,
Omega_h::Real  knob = 1.0,
std::string  tag_name = "",
Omega_h_Isotropy  isotropy = OMEGA_H_ANISOTROPIC,
Omega_h_Scales  scales = OMEGA_H_SCALES 
)
inline

Definition at line 115 of file omegahRefineSrv.H.

118  {
119  omegahRefineMetricSource orms{type, knob, std::move(tag_name), isotropy,
120  scales};
121  MetricSources.push_back(orms);
122  }
std::vector< omegahRefineMetricSource > MetricSources

◆ FillInputPortInformation()

int NEM::SRV::omegahRefineSrv::FillInputPortInformation ( int  port,
vtkInformation *  info 
)
overrideprotected

Definition at line 83 of file omegahRefineSrv.C.

84  {
85  info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "oshGeoMesh");
86  return 1;
87 }

◆ FillOutputPortInformation()

int NEM::SRV::omegahRefineSrv::FillOutputPortInformation ( int  port,
vtkInformation *  info 
)
overrideprotected

Definition at line 89 of file omegahRefineSrv.C.

90  {
91  info->Set(vtkDataObject::DATA_TYPE_NAME(), "oshGeoMesh");
92  return 1;
93 }

◆ GetOutput() [1/2]

NEM::MSH::geoMeshBase * NEM::SRV::srvBase::GetOutput ( )
inherited

Definition at line 104 of file srvBase.C.

104 { return this->GetOutput(0); }
vtkAbstractTypeMacro(srvBase, vtkAlgorithm) public NEM::MSH::geoMeshBase * GetOutput()
Get the output GeoMeshBase for a port on this algorithm.
Definition: srvBase.C:104

◆ GetOutput() [2/2]

NEM::MSH::geoMeshBase * NEM::SRV::srvBase::GetOutput ( int  port)
inherited

Definition at line 106 of file srvBase.C.

106  {
107  return NEM::MSH::geoMeshBase::SafeDownCast(this->GetOutputDataObject(port));
108 }

◆ New()

static omegahRefineSrv* NEM::SRV::omegahRefineSrv::New ( )
static

◆ RequestData()

int NEM::SRV::omegahRefineSrv::RequestData ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
overrideprotectedvirtual

This is the method you should override.

Implements NEM::SRV::srvBase.

Definition at line 95 of file omegahRefineSrv.C.

References ElementCountOverRelaxation, NEM::MSH::oshGeoMesh::getOshMesh(), GradationConvergenceTolerance, LengthHistogramMax, LengthHistogramMin, MaxElementCount, MaxGradationRate, MaxLength, MaxLengthAllowed, MaxLengthDesired, MetricSources, MinElementCount, MinLength, MinLengthDesired, MinQualityAllowed, MinQualityDesired, NlengthHistogramBins, NqualityHistogramBins, NsliverLayers, NsmoothingSteps, NEM::SRV::ParseVarCompareOpts(), NEM::SRV::ParseVerbosity(), ShouldCoarsen, ShouldCoarsenSlivers, ShouldLimitElementCount, ShouldLimitGradation, ShouldLimitLengths, ShouldPreventCoarsenFlip, ShouldRefine, ShouldSwap, TransferOptsIntegralDiffuseMap, TransferOptsIntegralMap, TransferOptsTypeMap, Verbose, and Verbosity.

97  {
98  // get the info objects
99  vtkInformation *inInfo = inputVector[0]->GetInformationObject(0);
100  vtkInformation *outInfo = outputVector->GetInformationObject(0);
101 
102  // get the input and output. Input may just have the geoMeshBase
103  // interface, but output should be an Omega_h mesh.
104  MSH::oshGeoMesh *input =
105  MSH::oshGeoMesh::SafeDownCast(inInfo->Get(vtkDataObject::DATA_OBJECT()));
106  MSH::oshGeoMesh *output =
107  MSH::oshGeoMesh::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT()));
108 
109  Omega_h::Mesh oshOutput = input->getOshMesh();
110 
111  if (!input->getOshMesh().is_valid()) return 0;
112 
113  // Attempt to classify points and cells, in case not called previously
114  Omega_h::finalize_classification(&oshOutput);
115 
116  // Define the metric input options
117  Omega_h::MetricInput metricInput;
118  metricInput.verbose = this->Verbose;
119  for (const auto &ms : this->MetricSources)
120  metricInput.add_source(
121  {ms.type, ms.knob, ms.tag_name, ms.isotropy, ms.scales});
122  metricInput.should_limit_lengths = this->ShouldLimitLengths;
123  if (this->MaxLength > 0.0) metricInput.max_length = this->MaxLength;
124  if (this->MinLength > 0.0) metricInput.min_length = this->MinLength;
125  metricInput.should_limit_gradation = this->ShouldLimitGradation;
126  if (this->MaxGradationRate > 0.0)
127  metricInput.max_gradation_rate = this->MaxGradationRate;
128  if (this->GradationConvergenceTolerance > 0.0)
129  metricInput.gradation_convergence_tolerance =
131  metricInput.should_limit_element_count = this->ShouldLimitElementCount;
132  if (this->MaxElementCount > 0.0)
133  metricInput.max_element_count = this->MaxElementCount;
134  if (this->MinElementCount > 0.0)
135  metricInput.min_element_count = this->MinElementCount;
136  if (this->ElementCountOverRelaxation > 0.0)
137  metricInput.element_count_over_relaxation =
139  if (this->NsmoothingSteps > 0)
140  metricInput.nsmoothing_steps = this->NsmoothingSteps;
141 
142  // Add implied metric and target metric
143  if (!this->MetricSources.empty())
144  Omega_h::generate_target_metric_tag(&oshOutput, metricInput);
145  Omega_h::add_implied_metric_tag(&oshOutput);
146 
147  // Define the adaptation options
148  Omega_h::AdaptOpts adaptOpts(&oshOutput);
149  if (this->MinLengthDesired > 0.0)
150  adaptOpts.min_length_desired = this->MinLengthDesired;
151  if (this->MaxLengthDesired > 0.0)
152  adaptOpts.max_length_desired = this->MaxLengthDesired;
153  if (this->MaxLengthAllowed > 0.0)
154  adaptOpts.max_length_allowed = this->MaxLengthAllowed;
155  if (this->MinQualityAllowed > 0.0)
156  adaptOpts.min_quality_allowed = this->MinQualityAllowed;
157  if (this->MinQualityDesired > 0.0)
158  adaptOpts.min_quality_desired = this->MinQualityDesired;
159  if (this->NsliverLayers > 0) adaptOpts.nsliver_layers = this->NsliverLayers;
160  adaptOpts.verbosity = ParseVerbosity(this->Verbosity);
161  if (this->LengthHistogramMin > 0.0)
162  adaptOpts.length_histogram_min = this->LengthHistogramMin;
163  if (this->LengthHistogramMax > 0.0)
164  adaptOpts.length_histogram_max = this->LengthHistogramMax;
165  if (this->NlengthHistogramBins > 0)
166  adaptOpts.nlength_histogram_bins = this->NlengthHistogramBins;
167  if (this->NqualityHistogramBins > 0)
168  adaptOpts.nquality_histogram_bins = this->NqualityHistogramBins;
169  adaptOpts.should_refine = this->ShouldRefine;
170  adaptOpts.should_coarsen = this->ShouldCoarsen;
171  adaptOpts.should_swap = this->ShouldSwap;
172  adaptOpts.should_coarsen_slivers = this->ShouldCoarsenSlivers;
173  adaptOpts.should_prevent_coarsen_flip = this->ShouldPreventCoarsenFlip;
174 
175  if (TransferOptsTypeMap.empty()) {
176  std::map<std::string, Omega_h_Transfer> transferMap;
177  const std::set<std::string> reservedTagsPoints{
178  "class_id", "class_dim", "momentum_velocity_fixed", "coordinates",
179  "warp", "metric", "target_metric", "global"};
180  for (Omega_h::Int i = 0; i < oshOutput.ntags(0); ++i) {
181  auto tag = oshOutput.get_tag(0, i);
182  if (reservedTagsPoints.find(tag->name()) == reservedTagsPoints.end()) {
183  bool inherit = true;
184  for (Omega_h::Int j = 1; j < oshOutput.dim(); ++j) {
185  if (!oshOutput.has_tag(j, tag->name())) {
186  inherit = false;
187  }
188  }
189  if (inherit) {
190  transferMap[tag->name()] = OMEGA_H_INHERIT;
191  } else if (tag->type() == OMEGA_H_REAL) {
192  transferMap[tag->name()] = OMEGA_H_LINEAR_INTERP;
193  }
194  }
195  }
196  const std::set<std::string> reservedTagsCells{"class_id", "class_dim",
197  "size", "quality"};
198  for (Omega_h::Int i = 0; i < oshOutput.ntags(oshOutput.dim()); ++i) {
199  auto tag = oshOutput.get_tag(oshOutput.dim(), i);
200  if (tag->type() == OMEGA_H_REAL &&
201  reservedTagsCells.find(tag->name()) == reservedTagsCells.end()) {
202  auto it = transferMap.find(tag->name());
203  if (it == transferMap.end()) {
204  transferMap[tag->name()] = OMEGA_H_POINTWISE;
205  }
206  }
207  }
208  adaptOpts.xfer_opts.type_map = transferMap;
209  } else {
210  adaptOpts.xfer_opts.type_map = TransferOptsTypeMap;
211  adaptOpts.xfer_opts.integral_map = TransferOptsIntegralMap;
212  for (const auto &idm : this->TransferOptsIntegralDiffuseMap)
213  adaptOpts.xfer_opts.integral_diffuse_map[idm.first] = ParseVarCompareOpts(
214  idm.second.type, idm.second.tolerance, idm.second.floor);
215  }
216 
217  // Omega_h::vtk::write_vtu("refine_test_" + std::to_string(0) + ".vtu",
218  // &oshOutput);
219 
220  // int i = 0;
221  do {
222  Omega_h::adapt(&oshOutput, adaptOpts);
223  // ++i;
224  // Omega_h::vtk::write_vtu("refine_test_" + std::to_string(i) + ".vtu",
225  // &oshOutput);
226  } while (Omega_h::approach_metric(&oshOutput, adaptOpts));
227 
228  output->setOshMesh(&oshOutput);
229 
230  return 1;
231 }
std::vector< omegahRefineMetricSource > MetricSources
std::map< std::string, omegahRefineVarCompareOpts > TransferOptsIntegralDiffuseMap
Omega_h::Real LengthHistogramMin
Omega_h::Int NqualityHistogramBins
std::map< std::string, std::string > TransferOptsIntegralMap
std::map< std::string, Omega_h_Transfer > TransferOptsTypeMap
Omega_h::VarCompareOpts ParseVarCompareOpts(const std::string &type, Omega_h::Real tolerance, Omega_h::Real floor)
Omega_h::Real GradationConvergenceTolerance
Omega_h::Verbosity ParseVerbosity(const std::string &verbosity)
Omega_h::Real LengthHistogramMax
Omega_h::Real ElementCountOverRelaxation

◆ RequestDataObject()

int NEM::SRV::srvBase::RequestDataObject ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtualinherited

Definition at line 110 of file srvBase.C.

References NEM::MSH::gmshGeoMesh::New(), NEM::MSH::vtkGeoMesh::New(), NEM::MSH::smeshGeoMesh::New(), NEM::MSH::foamGeoMesh::New(), NEM::MSH::exoGeoMesh::New(), NEM::MSH::inpGeoMesh::New(), and NEM::MSH::oshGeoMesh::New().

Referenced by NEM::SRV::srvBase::~srvBase().

112  {
113  for (int i = 0; i < outputVector->GetNumberOfInformationObjects(); ++i) {
114  auto outInfo = outputVector->GetInformationObject(i);
115  auto outAlgInfo = this->GetOutputPortInformation(i);
116  if (!outAlgInfo->Has(vtkDataObject::DATA_TYPE_NAME())) {
117  return 0;
118  }
119  std::string typeName = outAlgInfo->Get(vtkDataObject::DATA_TYPE_NAME());
120  MSH::geoMeshBase *output = nullptr;
121  if (typeName == "vtkGeoMesh") {
122  output = MSH::vtkGeoMesh::New();
123  } else if (typeName == "gmshGeoMesh") {
124 #ifdef HAVE_GMSH
125  output = MSH::gmshGeoMesh::New();
126 #endif
127  } else if (typeName == "oshGeoMesh") {
128  output = MSH::oshGeoMesh::New();
129  } else if (typeName == "exoGeoMesh") {
130  output = MSH::exoGeoMesh::New();
131  } else if (typeName == "inpGeoMesh") {
132  output = MSH::inpGeoMesh::New();
133  } else if (typeName == "foamGeoMesh") {
134 #ifdef HAVE_CFMSH
135  output = MSH::foamGeoMesh::New();
136 #endif
137  } else if (typeName == "smeshGeoMesh") {
138 #ifdef HAVE_OCC
139  output = MSH::smeshGeoMesh::New();
140 #endif
141  } else if (typeName == "geoMeshBase") {
142  if (i < this->GetNumberOfInputPorts() &&
143  inputVector[i]->GetNumberOfInformationObjects() > 0) {
144  auto inObj = inputVector[i]
145  ->GetInformationObject(0)
146  ->Get(vtkDataObject::DATA_OBJECT());
147  if (inObj) {
148  output = MSH::geoMeshBase::SafeDownCast(inObj->NewInstance());
149  }
150  }
151  }
152  if (!output) {
153  return 0;
154  }
155  outInfo->Set(vtkDataObject::DATA_OBJECT(), output);
156  output->FastDelete();
157  this->GetOutputPortInformation(i)->Set(
158  vtkDataObject::DATA_EXTENT_TYPE(), output->GetExtentType());
159  }
160  return 1;
161 }
static smeshGeoMesh * New()
static inpGeoMesh * New()
static exoGeoMesh * New()
static foamGeoMesh * New()
static vtkGeoMesh * New()
static oshGeoMesh * New()
static gmshGeoMesh * New()

◆ RequestInformation()

int NEM::SRV::srvBase::RequestInformation ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtualinherited

Definition at line 97 of file srvBase.C.

Referenced by NEM::SRV::srvBase::~srvBase().

99  {
100  // do nothing let subclasses handle it
101  return 1;
102 }

◆ RequestUpdateExtent()

int NEM::SRV::srvBase::RequestUpdateExtent ( vtkInformation *  request,
vtkInformationVector **  inputVector,
vtkInformationVector *  outputVector 
)
protectedvirtualinherited

Definition at line 163 of file srvBase.C.

Referenced by NEM::SRV::srvBase::~srvBase().

165  {
166  int numInputPorts = this->GetNumberOfInputPorts();
167  for (int i = 0; i < numInputPorts; i++) {
168  int numInputConnections = this->GetNumberOfInputConnections(i);
169  for (int j = 0; j < numInputConnections; j++) {
170  vtkInformation *inputInfo = inputVector[i]->GetInformationObject(j);
171  inputInfo->Set(vtkStreamingDemandDrivenPipeline::EXACT_EXTENT(), 1);
172  }
173  }
174  return 1;
175 }

◆ vtkBooleanMacro() [1/3]

NEM::SRV::omegahRefineSrv::vtkBooleanMacro ( ShouldLimitLengths  ,
bool   
)

◆ vtkBooleanMacro() [2/3]

NEM::SRV::omegahRefineSrv::vtkBooleanMacro ( ShouldLimitGradation  ,
bool   
)

◆ vtkBooleanMacro() [3/3]

NEM::SRV::omegahRefineSrv::vtkBooleanMacro ( ShouldLimitElementCount  ,
bool   
)

◆ vtkGetMacro() [1/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( ShouldLimitLengths  ,
bool   
)

◆ vtkGetMacro() [2/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( MaxLength  ,
Omega_h::Real   
)

◆ vtkGetMacro() [3/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( MinLength  ,
Omega_h::Real   
)

◆ vtkGetMacro() [4/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( ShouldLimitGradation  ,
bool   
)

◆ vtkGetMacro() [5/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( MaxGradationRate  ,
Omega_h::Real   
)

◆ vtkGetMacro() [6/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( GradationConvergenceTolerance  ,
Omega_h::Real   
)

◆ vtkGetMacro() [7/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( ShouldLimitElementCount  ,
bool   
)

◆ vtkGetMacro() [8/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( MaxElementCount  ,
Omega_h::Real   
)

◆ vtkGetMacro() [9/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( MinElementCount  ,
Omega_h::Real   
)

◆ vtkGetMacro() [10/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( ElementCountOverRelaxation  ,
Omega_h::Real   
)

◆ vtkGetMacro() [11/11]

NEM::SRV::omegahRefineSrv::vtkGetMacro ( NsmoothingSteps  ,
Omega_h::Int   
)

◆ vtkSetMacro() [1/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( ShouldLimitLengths  ,
bool   
)

Default is off.

◆ vtkSetMacro() [2/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( MaxLength  ,
Omega_h::Real   
)

◆ vtkSetMacro() [3/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( MinLength  ,
Omega_h::Real   
)

◆ vtkSetMacro() [4/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( ShouldLimitGradation  ,
bool   
)

Default is off.

◆ vtkSetMacro() [5/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( MaxGradationRate  ,
Omega_h::Real   
)

◆ vtkSetMacro() [6/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( GradationConvergenceTolerance  ,
Omega_h::Real   
)

◆ vtkSetMacro() [7/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( ShouldLimitElementCount  ,
bool   
)

◆ vtkSetMacro() [8/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( MaxElementCount  ,
Omega_h::Real   
)

◆ vtkSetMacro() [9/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( MinElementCount  ,
Omega_h::Real   
)

◆ vtkSetMacro() [10/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( ElementCountOverRelaxation  ,
Omega_h::Real   
)

◆ vtkSetMacro() [11/11]

NEM::SRV::omegahRefineSrv::vtkSetMacro ( NsmoothingSteps  ,
Omega_h::Int   
)

Member Data Documentation

◆ ElementCountOverRelaxation

Omega_h::Real NEM::SRV::omegahRefineSrv::ElementCountOverRelaxation {-1.0}
private

Definition at line 415 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ GradationConvergenceTolerance

Omega_h::Real NEM::SRV::omegahRefineSrv::GradationConvergenceTolerance {-1.0}
private

Definition at line 411 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ LengthHistogramMax

Omega_h::Real NEM::SRV::omegahRefineSrv::LengthHistogramMax {-1.0}
private

Definition at line 427 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ LengthHistogramMin

Omega_h::Real NEM::SRV::omegahRefineSrv::LengthHistogramMin {-1.0}
private

Definition at line 426 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MaxElementCount

Omega_h::Real NEM::SRV::omegahRefineSrv::MaxElementCount {-1.0}
private

Definition at line 413 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MaxGradationRate

Omega_h::Real NEM::SRV::omegahRefineSrv::MaxGradationRate {-1.0}
private

Definition at line 410 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MaxLength

Omega_h::Real NEM::SRV::omegahRefineSrv::MaxLength {-1.0}
private

Definition at line 407 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MaxLengthAllowed

Omega_h::Real NEM::SRV::omegahRefineSrv::MaxLengthAllowed {-1.0}
private

Definition at line 421 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MaxLengthDesired

Omega_h::Real NEM::SRV::omegahRefineSrv::MaxLengthDesired {-1.0}
private

Definition at line 420 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MetricSources

std::vector<omegahRefineMetricSource> NEM::SRV::omegahRefineSrv::MetricSources
private

Definition at line 405 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MinElementCount

Omega_h::Real NEM::SRV::omegahRefineSrv::MinElementCount {-1.0}
private

Definition at line 414 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MinLength

Omega_h::Real NEM::SRV::omegahRefineSrv::MinLength {-1.0}
private

Definition at line 408 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MinLengthDesired

Omega_h::Real NEM::SRV::omegahRefineSrv::MinLengthDesired {-1.0}
private

Definition at line 419 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MinQualityAllowed

Omega_h::Real NEM::SRV::omegahRefineSrv::MinQualityAllowed {-1.0}
private

Definition at line 422 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ MinQualityDesired

Omega_h::Real NEM::SRV::omegahRefineSrv::MinQualityDesired {-1.0}
private

Definition at line 423 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ NlengthHistogramBins

Omega_h::Int NEM::SRV::omegahRefineSrv::NlengthHistogramBins {-1}
private

Definition at line 428 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ NqualityHistogramBins

Omega_h::Int NEM::SRV::omegahRefineSrv::NqualityHistogramBins {-1}
private

Definition at line 429 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ NsliverLayers

Omega_h::Int NEM::SRV::omegahRefineSrv::NsliverLayers {-1}
private

Definition at line 424 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ NsmoothingSteps

Omega_h::Int NEM::SRV::omegahRefineSrv::NsmoothingSteps {-1}
private

Definition at line 416 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldCoarsen

bool NEM::SRV::omegahRefineSrv::ShouldCoarsen {true}
private

Definition at line 431 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldCoarsenSlivers

bool NEM::SRV::omegahRefineSrv::ShouldCoarsenSlivers {true}
private

Definition at line 433 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldLimitElementCount

bool NEM::SRV::omegahRefineSrv::ShouldLimitElementCount {false}
private

Definition at line 412 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldLimitGradation

bool NEM::SRV::omegahRefineSrv::ShouldLimitGradation {false}
private

Definition at line 409 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldLimitLengths

bool NEM::SRV::omegahRefineSrv::ShouldLimitLengths {false}
private

Definition at line 406 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldPreventCoarsenFlip

bool NEM::SRV::omegahRefineSrv::ShouldPreventCoarsenFlip {false}
private

Definition at line 434 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldRefine

bool NEM::SRV::omegahRefineSrv::ShouldRefine {true}
private

Definition at line 430 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ ShouldSwap

bool NEM::SRV::omegahRefineSrv::ShouldSwap {true}
private

Definition at line 432 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ TransferOptsIntegralDiffuseMap

std::map<std::string, omegahRefineVarCompareOpts> NEM::SRV::omegahRefineSrv::TransferOptsIntegralDiffuseMap
private

Definition at line 440 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ TransferOptsIntegralMap

std::map<std::string, std::string> NEM::SRV::omegahRefineSrv::TransferOptsIntegralMap
private

Definition at line 438 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ TransferOptsTypeMap

std::map<std::string, Omega_h_Transfer> NEM::SRV::omegahRefineSrv::TransferOptsTypeMap
private

Definition at line 437 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ Verbose

bool NEM::SRV::omegahRefineSrv::Verbose {true}
private

Definition at line 404 of file omegahRefineSrv.H.

Referenced by RequestData().

◆ Verbosity

std::string NEM::SRV::omegahRefineSrv::Verbosity {"Each Rebuild"}
private

Definition at line 425 of file omegahRefineSrv.H.

Referenced by RequestData().


The documentation for this class was generated from the following files: