https://mooseframework.inl.gov
Functions
SolutionInvalidityReporter.C File Reference

Go to the source code of this file.

Functions

 registerMooseObject ("MooseApp", SolutionInvalidityReporter)
 
void to_json (nlohmann::json &json, const SolutionInvalidity *const &solution_invalidity)
 

Function Documentation

◆ registerMooseObject()

registerMooseObject ( "MooseApp"  ,
SolutionInvalidityReporter   
)

◆ to_json()

void to_json ( nlohmann::json &  json,
const SolutionInvalidity *const &  solution_invalidity 
)

Definition at line 32 of file SolutionInvalidityReporter.C.

33 {
34  mooseAssert(solution_invalidity->processor_id() == 0, "should only be called on rank 0");
35 
36  const auto & solution_registry = moose::internal::getSolutionInvalidityRegistry();
37  const auto & counts = solution_invalidity->counts();
38  if (counts.size() == 0)
39  // Create an empty array
40  json = nlohmann::json::array();
41  else
42  // Output data to json
43  for (const auto id : index_range(solution_invalidity->counts()))
44  {
45  nlohmann::json entry;
46  entry["object_type"] = solution_registry.item(id).object_type;
47  entry["message"] = solution_registry.item(id).message;
48  entry["converged_counts"] = counts[id].current_counts;
49  entry["timestep_counts"] = counts[id].current_timestep_counts;
50  entry["total_counts"] = counts[id].total_counts;
51  json.push_back(entry);
52  }
53 }
const std::vector< InvalidCounts > & counts() const
Access the private solution invalidity counts.
SolutionInvalidityRegistry & getSolutionInvalidityRegistry()
Get the global SolutionInvalidityRegistry singleton.
processor_id_type processor_id() const
auto index_range(const T &sizable)