Skip to content

Commit 6094caa

Browse files
committed
Support get/print_info on an uninitialized system
Most code doesn't do this, but when a code does it should still get some info, not just an assertion failure or a segfault.
1 parent 6232e98 commit 6094caa

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

src/systems/system.C

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1879,18 +1879,23 @@ std::string System::get_info() const
18791879

18801880
oss << '\n';
18811881

1882-
oss << " n_dofs()=" << this->n_dofs() << '\n';
1883-
dof_id_type local_dofs = this->n_local_dofs();
1884-
oss << " n_local_dofs()=" << local_dofs << '\n';
1885-
this->comm().max(local_dofs);
1886-
oss << " max(n_local_dofs())=" << local_dofs << '\n';
1882+
if (this->is_initialized())
1883+
{
1884+
oss << " n_dofs()=" << this->n_dofs() << '\n';
1885+
dof_id_type local_dofs = this->n_local_dofs();
1886+
oss << " n_local_dofs()=" << local_dofs << '\n';
1887+
this->comm().max(local_dofs);
1888+
oss << " max(n_local_dofs())=" << local_dofs << '\n';
18871889
#ifdef LIBMESH_ENABLE_CONSTRAINTS
1888-
oss << " n_constrained_dofs()=" << this->n_constrained_dofs() << '\n';
1889-
oss << " n_local_constrained_dofs()=" << this->n_local_constrained_dofs() << '\n';
1890-
dof_id_type local_unconstrained_dofs = this->n_local_dofs() - this->n_local_constrained_dofs();
1891-
this->comm().max(local_unconstrained_dofs);
1892-
oss << " max(local unconstrained dofs)=" << local_unconstrained_dofs << '\n';
1890+
oss << " n_constrained_dofs()=" << this->n_constrained_dofs() << '\n';
1891+
oss << " n_local_constrained_dofs()=" << this->n_local_constrained_dofs() << '\n';
1892+
dof_id_type local_unconstrained_dofs = this->n_local_dofs() - this->n_local_constrained_dofs();
1893+
this->comm().max(local_unconstrained_dofs);
1894+
oss << " max(local unconstrained dofs)=" << local_unconstrained_dofs << '\n';
18931895
#endif
1896+
}
1897+
else
1898+
oss << " (still uninitialized)\n";
18941899

18951900
oss << " " << "n_vectors()=" << this->n_vectors() << '\n';
18961901
oss << " " << "n_matrices()=" << this->n_matrices() << '\n';

0 commit comments

Comments
 (0)