diff --git a/Makefile.in b/Makefile.in index 658bda6a391..7f916ef3c85 100644 --- a/Makefile.in +++ b/Makefile.in @@ -187,7 +187,7 @@ am__libmesh_dbg_la_SOURCES_DIST = src/base/dof_map.C \ src/base/libmesh_singleton.C src/base/periodic_boundaries.C \ src/base/periodic_boundary.C src/base/periodic_boundary_base.C \ src/base/print_trace.C src/base/reference_counted_object.C \ - src/base/reference_counter.C \ + src/base/reference_counter.C src/base/sparsity_pattern.C \ src/error_estimation/adjoint_refinement_estimator.C \ src/error_estimation/adjoint_residual_error_estimator.C \ src/error_estimation/discontinuity_measure.C \ @@ -459,6 +459,7 @@ am__objects_1 = src/base/libmesh_dbg_la-dof_map.lo \ src/base/libmesh_dbg_la-print_trace.lo \ src/base/libmesh_dbg_la-reference_counted_object.lo \ src/base/libmesh_dbg_la-reference_counter.lo \ + src/base/libmesh_dbg_la-sparsity_pattern.lo \ src/error_estimation/libmesh_dbg_la-adjoint_refinement_estimator.lo \ src/error_estimation/libmesh_dbg_la-adjoint_residual_error_estimator.lo \ src/error_estimation/libmesh_dbg_la-discontinuity_measure.lo \ @@ -865,7 +866,7 @@ am__libmesh_devel_la_SOURCES_DIST = src/base/dof_map.C \ src/base/libmesh_singleton.C src/base/periodic_boundaries.C \ src/base/periodic_boundary.C src/base/periodic_boundary_base.C \ src/base/print_trace.C src/base/reference_counted_object.C \ - src/base/reference_counter.C \ + src/base/reference_counter.C src/base/sparsity_pattern.C \ src/error_estimation/adjoint_refinement_estimator.C \ src/error_estimation/adjoint_residual_error_estimator.C \ src/error_estimation/discontinuity_measure.C \ @@ -1136,6 +1137,7 @@ am__objects_2 = src/base/libmesh_devel_la-dof_map.lo \ src/base/libmesh_devel_la-print_trace.lo \ src/base/libmesh_devel_la-reference_counted_object.lo \ src/base/libmesh_devel_la-reference_counter.lo \ + src/base/libmesh_devel_la-sparsity_pattern.lo \ src/error_estimation/libmesh_devel_la-adjoint_refinement_estimator.lo \ src/error_estimation/libmesh_devel_la-adjoint_residual_error_estimator.lo \ src/error_estimation/libmesh_devel_la-discontinuity_measure.lo \ @@ -1539,7 +1541,7 @@ am__libmesh_oprof_la_SOURCES_DIST = src/base/dof_map.C \ src/base/libmesh_singleton.C src/base/periodic_boundaries.C \ src/base/periodic_boundary.C src/base/periodic_boundary_base.C \ src/base/print_trace.C src/base/reference_counted_object.C \ - src/base/reference_counter.C \ + src/base/reference_counter.C src/base/sparsity_pattern.C \ src/error_estimation/adjoint_refinement_estimator.C \ src/error_estimation/adjoint_residual_error_estimator.C \ src/error_estimation/discontinuity_measure.C \ @@ -1810,6 +1812,7 @@ am__objects_3 = src/base/libmesh_oprof_la-dof_map.lo \ src/base/libmesh_oprof_la-print_trace.lo \ src/base/libmesh_oprof_la-reference_counted_object.lo \ src/base/libmesh_oprof_la-reference_counter.lo \ + src/base/libmesh_oprof_la-sparsity_pattern.lo \ src/error_estimation/libmesh_oprof_la-adjoint_refinement_estimator.lo \ src/error_estimation/libmesh_oprof_la-adjoint_residual_error_estimator.lo \ src/error_estimation/libmesh_oprof_la-discontinuity_measure.lo \ @@ -2213,7 +2216,7 @@ am__libmesh_opt_la_SOURCES_DIST = src/base/dof_map.C \ src/base/libmesh_singleton.C src/base/periodic_boundaries.C \ src/base/periodic_boundary.C src/base/periodic_boundary_base.C \ src/base/print_trace.C src/base/reference_counted_object.C \ - src/base/reference_counter.C \ + src/base/reference_counter.C src/base/sparsity_pattern.C \ src/error_estimation/adjoint_refinement_estimator.C \ src/error_estimation/adjoint_residual_error_estimator.C \ src/error_estimation/discontinuity_measure.C \ @@ -2484,6 +2487,7 @@ am__objects_4 = src/base/libmesh_opt_la-dof_map.lo \ src/base/libmesh_opt_la-print_trace.lo \ src/base/libmesh_opt_la-reference_counted_object.lo \ src/base/libmesh_opt_la-reference_counter.lo \ + src/base/libmesh_opt_la-sparsity_pattern.lo \ src/error_estimation/libmesh_opt_la-adjoint_refinement_estimator.lo \ src/error_estimation/libmesh_opt_la-adjoint_residual_error_estimator.lo \ src/error_estimation/libmesh_opt_la-discontinuity_measure.lo \ @@ -2886,7 +2890,7 @@ am__libmesh_prof_la_SOURCES_DIST = src/base/dof_map.C \ src/base/libmesh_singleton.C src/base/periodic_boundaries.C \ src/base/periodic_boundary.C src/base/periodic_boundary_base.C \ src/base/print_trace.C src/base/reference_counted_object.C \ - src/base/reference_counter.C \ + src/base/reference_counter.C src/base/sparsity_pattern.C \ src/error_estimation/adjoint_refinement_estimator.C \ src/error_estimation/adjoint_residual_error_estimator.C \ src/error_estimation/discontinuity_measure.C \ @@ -3157,6 +3161,7 @@ am__objects_5 = src/base/libmesh_prof_la-dof_map.lo \ src/base/libmesh_prof_la-print_trace.lo \ src/base/libmesh_prof_la-reference_counted_object.lo \ src/base/libmesh_prof_la-reference_counter.lo \ + src/base/libmesh_prof_la-sparsity_pattern.lo \ src/error_estimation/libmesh_prof_la-adjoint_refinement_estimator.lo \ src/error_estimation/libmesh_prof_la-adjoint_residual_error_estimator.lo \ src/error_estimation/libmesh_prof_la-discontinuity_measure.lo \ @@ -4335,6 +4340,7 @@ libmesh_SOURCES = \ src/base/print_trace.C \ src/base/reference_counted_object.C \ src/base/reference_counter.C \ + src/base/sparsity_pattern.C \ src/error_estimation/adjoint_refinement_estimator.C \ src/error_estimation/adjoint_residual_error_estimator.C \ src/error_estimation/discontinuity_measure.C \ @@ -5048,6 +5054,8 @@ src/base/libmesh_dbg_la-reference_counted_object.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/base/libmesh_dbg_la-reference_counter.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) +src/base/libmesh_dbg_la-sparsity_pattern.lo: src/base/$(am__dirstamp) \ + src/base/$(DEPDIR)/$(am__dirstamp) src/error_estimation/$(am__dirstamp): @$(MKDIR_P) src/error_estimation @: > src/error_estimation/$(am__dirstamp) @@ -6099,6 +6107,8 @@ src/base/libmesh_devel_la-reference_counted_object.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/base/libmesh_devel_la-reference_counter.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) +src/base/libmesh_devel_la-sparsity_pattern.lo: \ + src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/error_estimation/libmesh_devel_la-adjoint_refinement_estimator.lo: \ src/error_estimation/$(am__dirstamp) \ src/error_estimation/$(DEPDIR)/$(am__dirstamp) @@ -7069,6 +7079,8 @@ src/base/libmesh_oprof_la-reference_counted_object.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/base/libmesh_oprof_la-reference_counter.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) +src/base/libmesh_oprof_la-sparsity_pattern.lo: \ + src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/error_estimation/libmesh_oprof_la-adjoint_refinement_estimator.lo: \ src/error_estimation/$(am__dirstamp) \ src/error_estimation/$(DEPDIR)/$(am__dirstamp) @@ -8039,6 +8051,8 @@ src/base/libmesh_opt_la-reference_counted_object.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/base/libmesh_opt_la-reference_counter.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) +src/base/libmesh_opt_la-sparsity_pattern.lo: src/base/$(am__dirstamp) \ + src/base/$(DEPDIR)/$(am__dirstamp) src/error_estimation/libmesh_opt_la-adjoint_refinement_estimator.lo: \ src/error_estimation/$(am__dirstamp) \ src/error_estimation/$(DEPDIR)/$(am__dirstamp) @@ -9006,6 +9020,8 @@ src/base/libmesh_prof_la-reference_counted_object.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/base/libmesh_prof_la-reference_counter.lo: \ src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) +src/base/libmesh_prof_la-sparsity_pattern.lo: \ + src/base/$(am__dirstamp) src/base/$(DEPDIR)/$(am__dirstamp) src/error_estimation/libmesh_prof_la-adjoint_refinement_estimator.lo: \ src/error_estimation/$(am__dirstamp) \ src/error_estimation/$(DEPDIR)/$(am__dirstamp) @@ -10337,6 +10353,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_dbg_la-print_trace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_dbg_la-reference_counted_object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_dbg_la-reference_counter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_dbg_la-sparsity_pattern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_devel_la-dof_map.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_devel_la-dof_map_constraints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_devel_la-dof_object.Plo@am__quote@ @@ -10349,6 +10366,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_devel_la-print_trace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_devel_la-reference_counted_object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_devel_la-reference_counter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_devel_la-sparsity_pattern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_oprof_la-dof_map.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_oprof_la-dof_map_constraints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_oprof_la-dof_object.Plo@am__quote@ @@ -10361,6 +10379,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_oprof_la-print_trace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_oprof_la-reference_counted_object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_oprof_la-reference_counter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_oprof_la-sparsity_pattern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_opt_la-dof_map.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_opt_la-dof_map_constraints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_opt_la-dof_object.Plo@am__quote@ @@ -10373,6 +10392,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_opt_la-print_trace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_opt_la-reference_counted_object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_opt_la-reference_counter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_opt_la-sparsity_pattern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_prof_la-dof_map.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_prof_la-dof_map_constraints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_prof_la-dof_object.Plo@am__quote@ @@ -10385,6 +10405,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_prof_la-print_trace.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_prof_la-reference_counted_object.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_prof_la-reference_counter.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/base/$(DEPDIR)/libmesh_prof_la-sparsity_pattern.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/error_estimation/$(DEPDIR)/libmesh_dbg_la-adjoint_refinement_estimator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/error_estimation/$(DEPDIR)/libmesh_dbg_la-adjoint_residual_error_estimator.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/error_estimation/$(DEPDIR)/libmesh_dbg_la-discontinuity_measure.Plo@am__quote@ @@ -12417,6 +12438,13 @@ src/base/libmesh_dbg_la-reference_counter.lo: src/base/reference_counter.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_dbg_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_dbg_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_dbg_la-reference_counter.lo `test -f 'src/base/reference_counter.C' || echo '$(srcdir)/'`src/base/reference_counter.C +src/base/libmesh_dbg_la-sparsity_pattern.lo: src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_dbg_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_dbg_la_CXXFLAGS) $(CXXFLAGS) -MT src/base/libmesh_dbg_la-sparsity_pattern.lo -MD -MP -MF src/base/$(DEPDIR)/libmesh_dbg_la-sparsity_pattern.Tpo -c -o src/base/libmesh_dbg_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/base/$(DEPDIR)/libmesh_dbg_la-sparsity_pattern.Tpo src/base/$(DEPDIR)/libmesh_dbg_la-sparsity_pattern.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/base/sparsity_pattern.C' object='src/base/libmesh_dbg_la-sparsity_pattern.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_dbg_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_dbg_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_dbg_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C + src/error_estimation/libmesh_dbg_la-adjoint_refinement_estimator.lo: src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_dbg_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_dbg_la_CXXFLAGS) $(CXXFLAGS) -MT src/error_estimation/libmesh_dbg_la-adjoint_refinement_estimator.lo -MD -MP -MF src/error_estimation/$(DEPDIR)/libmesh_dbg_la-adjoint_refinement_estimator.Tpo -c -o src/error_estimation/libmesh_dbg_la-adjoint_refinement_estimator.lo `test -f 'src/error_estimation/adjoint_refinement_estimator.C' || echo '$(srcdir)/'`src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/error_estimation/$(DEPDIR)/libmesh_dbg_la-adjoint_refinement_estimator.Tpo src/error_estimation/$(DEPDIR)/libmesh_dbg_la-adjoint_refinement_estimator.Plo @@ -15196,6 +15224,13 @@ src/base/libmesh_devel_la-reference_counter.lo: src/base/reference_counter.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_devel_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_devel_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_devel_la-reference_counter.lo `test -f 'src/base/reference_counter.C' || echo '$(srcdir)/'`src/base/reference_counter.C +src/base/libmesh_devel_la-sparsity_pattern.lo: src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_devel_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_devel_la_CXXFLAGS) $(CXXFLAGS) -MT src/base/libmesh_devel_la-sparsity_pattern.lo -MD -MP -MF src/base/$(DEPDIR)/libmesh_devel_la-sparsity_pattern.Tpo -c -o src/base/libmesh_devel_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/base/$(DEPDIR)/libmesh_devel_la-sparsity_pattern.Tpo src/base/$(DEPDIR)/libmesh_devel_la-sparsity_pattern.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/base/sparsity_pattern.C' object='src/base/libmesh_devel_la-sparsity_pattern.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_devel_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_devel_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_devel_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C + src/error_estimation/libmesh_devel_la-adjoint_refinement_estimator.lo: src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_devel_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_devel_la_CXXFLAGS) $(CXXFLAGS) -MT src/error_estimation/libmesh_devel_la-adjoint_refinement_estimator.lo -MD -MP -MF src/error_estimation/$(DEPDIR)/libmesh_devel_la-adjoint_refinement_estimator.Tpo -c -o src/error_estimation/libmesh_devel_la-adjoint_refinement_estimator.lo `test -f 'src/error_estimation/adjoint_refinement_estimator.C' || echo '$(srcdir)/'`src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/error_estimation/$(DEPDIR)/libmesh_devel_la-adjoint_refinement_estimator.Tpo src/error_estimation/$(DEPDIR)/libmesh_devel_la-adjoint_refinement_estimator.Plo @@ -17975,6 +18010,13 @@ src/base/libmesh_oprof_la-reference_counter.lo: src/base/reference_counter.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_oprof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_oprof_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_oprof_la-reference_counter.lo `test -f 'src/base/reference_counter.C' || echo '$(srcdir)/'`src/base/reference_counter.C +src/base/libmesh_oprof_la-sparsity_pattern.lo: src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_oprof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_oprof_la_CXXFLAGS) $(CXXFLAGS) -MT src/base/libmesh_oprof_la-sparsity_pattern.lo -MD -MP -MF src/base/$(DEPDIR)/libmesh_oprof_la-sparsity_pattern.Tpo -c -o src/base/libmesh_oprof_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/base/$(DEPDIR)/libmesh_oprof_la-sparsity_pattern.Tpo src/base/$(DEPDIR)/libmesh_oprof_la-sparsity_pattern.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/base/sparsity_pattern.C' object='src/base/libmesh_oprof_la-sparsity_pattern.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_oprof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_oprof_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_oprof_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C + src/error_estimation/libmesh_oprof_la-adjoint_refinement_estimator.lo: src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_oprof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_oprof_la_CXXFLAGS) $(CXXFLAGS) -MT src/error_estimation/libmesh_oprof_la-adjoint_refinement_estimator.lo -MD -MP -MF src/error_estimation/$(DEPDIR)/libmesh_oprof_la-adjoint_refinement_estimator.Tpo -c -o src/error_estimation/libmesh_oprof_la-adjoint_refinement_estimator.lo `test -f 'src/error_estimation/adjoint_refinement_estimator.C' || echo '$(srcdir)/'`src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/error_estimation/$(DEPDIR)/libmesh_oprof_la-adjoint_refinement_estimator.Tpo src/error_estimation/$(DEPDIR)/libmesh_oprof_la-adjoint_refinement_estimator.Plo @@ -20754,6 +20796,13 @@ src/base/libmesh_opt_la-reference_counter.lo: src/base/reference_counter.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_opt_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_opt_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_opt_la-reference_counter.lo `test -f 'src/base/reference_counter.C' || echo '$(srcdir)/'`src/base/reference_counter.C +src/base/libmesh_opt_la-sparsity_pattern.lo: src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_opt_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_opt_la_CXXFLAGS) $(CXXFLAGS) -MT src/base/libmesh_opt_la-sparsity_pattern.lo -MD -MP -MF src/base/$(DEPDIR)/libmesh_opt_la-sparsity_pattern.Tpo -c -o src/base/libmesh_opt_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/base/$(DEPDIR)/libmesh_opt_la-sparsity_pattern.Tpo src/base/$(DEPDIR)/libmesh_opt_la-sparsity_pattern.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/base/sparsity_pattern.C' object='src/base/libmesh_opt_la-sparsity_pattern.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_opt_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_opt_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_opt_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C + src/error_estimation/libmesh_opt_la-adjoint_refinement_estimator.lo: src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_opt_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_opt_la_CXXFLAGS) $(CXXFLAGS) -MT src/error_estimation/libmesh_opt_la-adjoint_refinement_estimator.lo -MD -MP -MF src/error_estimation/$(DEPDIR)/libmesh_opt_la-adjoint_refinement_estimator.Tpo -c -o src/error_estimation/libmesh_opt_la-adjoint_refinement_estimator.lo `test -f 'src/error_estimation/adjoint_refinement_estimator.C' || echo '$(srcdir)/'`src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/error_estimation/$(DEPDIR)/libmesh_opt_la-adjoint_refinement_estimator.Tpo src/error_estimation/$(DEPDIR)/libmesh_opt_la-adjoint_refinement_estimator.Plo @@ -23533,6 +23582,13 @@ src/base/libmesh_prof_la-reference_counter.lo: src/base/reference_counter.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_prof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_prof_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_prof_la-reference_counter.lo `test -f 'src/base/reference_counter.C' || echo '$(srcdir)/'`src/base/reference_counter.C +src/base/libmesh_prof_la-sparsity_pattern.lo: src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_prof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_prof_la_CXXFLAGS) $(CXXFLAGS) -MT src/base/libmesh_prof_la-sparsity_pattern.lo -MD -MP -MF src/base/$(DEPDIR)/libmesh_prof_la-sparsity_pattern.Tpo -c -o src/base/libmesh_prof_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/base/$(DEPDIR)/libmesh_prof_la-sparsity_pattern.Tpo src/base/$(DEPDIR)/libmesh_prof_la-sparsity_pattern.Plo +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='src/base/sparsity_pattern.C' object='src/base/libmesh_prof_la-sparsity_pattern.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_prof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_prof_la_CXXFLAGS) $(CXXFLAGS) -c -o src/base/libmesh_prof_la-sparsity_pattern.lo `test -f 'src/base/sparsity_pattern.C' || echo '$(srcdir)/'`src/base/sparsity_pattern.C + src/error_estimation/libmesh_prof_la-adjoint_refinement_estimator.lo: src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmesh_prof_la_CPPFLAGS) $(CPPFLAGS) $(libmesh_prof_la_CXXFLAGS) $(CXXFLAGS) -MT src/error_estimation/libmesh_prof_la-adjoint_refinement_estimator.lo -MD -MP -MF src/error_estimation/$(DEPDIR)/libmesh_prof_la-adjoint_refinement_estimator.Tpo -c -o src/error_estimation/libmesh_prof_la-adjoint_refinement_estimator.lo `test -f 'src/error_estimation/adjoint_refinement_estimator.C' || echo '$(srcdir)/'`src/error_estimation/adjoint_refinement_estimator.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) src/error_estimation/$(DEPDIR)/libmesh_prof_la-adjoint_refinement_estimator.Tpo src/error_estimation/$(DEPDIR)/libmesh_prof_la-adjoint_refinement_estimator.Plo diff --git a/include/base/sparsity_pattern.h b/include/base/sparsity_pattern.h index 003b59310bf..3588f5f7808 100644 --- a/include/base/sparsity_pattern.h +++ b/include/base/sparsity_pattern.h @@ -22,6 +22,7 @@ // Local Includes #include "libmesh/elem_range.h" #include "libmesh/threads_allocators.h" +#include "libmesh/parallel_object.h" // C++ includes #include @@ -75,7 +76,7 @@ namespace SparsityPattern // use a namespace so member classes can be forward-de * (but bounding) values, and in this case the threaded method can * take some short-cuts for efficiency. */ - class Build + class Build : public ParallelObject { private: const MeshBase &mesh; @@ -96,29 +97,9 @@ namespace SparsityPattern // use a namespace so member classes can be forward-de const DofMap &dof_map_in, const CouplingMatrix *dof_coupling_in, const bool implicit_neighbor_dofs_in, - const bool need_full_sparsity_pattern_in) : - mesh(mesh_in), - dof_map(dof_map_in), - dof_coupling(dof_coupling_in), - implicit_neighbor_dofs(implicit_neighbor_dofs_in), - need_full_sparsity_pattern(need_full_sparsity_pattern_in), - sparsity_pattern(), - nonlocal_pattern(), - n_nz(), - n_oz() - {} - - Build (Build &other, Threads::split) : - mesh(other.mesh), - dof_map(other.dof_map), - dof_coupling(other.dof_coupling), - implicit_neighbor_dofs(other.implicit_neighbor_dofs), - need_full_sparsity_pattern(other.need_full_sparsity_pattern), - sparsity_pattern(), - nonlocal_pattern(), - n_nz(), - n_oz() - {} + const bool need_full_sparsity_pattern_in); + + Build (Build &other, Threads::split); void operator()(const ConstElemRange &range); diff --git a/src/base/dof_map.C b/src/base/dof_map.C index 8aeeefff4bc..09f9f7cc01e 100644 --- a/src/base/dof_map.C +++ b/src/base/dof_map.C @@ -232,7 +232,7 @@ void DofMap::attach_matrix (SparseMatrix& matrix) bool computed_sparsity_already = ((_n_nz && !_n_nz->empty()) || (_n_oz && !_n_oz->empty())); - CommWorld.max(computed_sparsity_already); + this->communicator().max(computed_sparsity_already); if (computed_sparsity_already && matrix.need_full_sparsity_pattern()) { @@ -284,7 +284,7 @@ void DofMap::set_nonlocal_dof_objects(iterator_type objects_begin, // First, iterate over local objects to find out how many // are on each processor std::vector - ghost_objects_from_proc(libMesh::n_processors(), 0); + ghost_objects_from_proc(this->n_processors(), 0); iterator_type it = objects_begin; @@ -301,23 +301,23 @@ void DofMap::set_nonlocal_dof_objects(iterator_type objects_begin, } } - std::vector objects_on_proc(libMesh::n_processors(), 0); - CommWorld.allgather(ghost_objects_from_proc[libMesh::processor_id()], - objects_on_proc); + std::vector objects_on_proc(this->n_processors(), 0); + this->communicator().allgather(ghost_objects_from_proc[this->processor_id()], + objects_on_proc); #ifdef DEBUG - for (processor_id_type p=0; p != libMesh::n_processors(); ++p) + for (processor_id_type p=0; p != this->n_processors(); ++p) libmesh_assert_less_equal (ghost_objects_from_proc[p], objects_on_proc[p]); #endif // Request sets to send to each processor std::vector > - requested_ids(libMesh::n_processors()); + requested_ids(this->n_processors()); // We know how many of our objects live on each processor, so // reserve() space for requests from each. - for (processor_id_type p=0; p != libMesh::n_processors(); ++p) - if (p != libMesh::processor_id()) + for (processor_id_type p=0; p != this->n_processors(); ++p) + if (p != this->processor_id()) requested_ids[p].reserve(ghost_objects_from_proc[p]); for (it = objects_begin; it != objects_end; ++it) @@ -327,22 +327,22 @@ void DofMap::set_nonlocal_dof_objects(iterator_type objects_begin, requested_ids[obj->processor_id()].push_back(obj->id()); } #ifdef DEBUG - for (processor_id_type p=0; p != libMesh::n_processors(); ++p) + for (processor_id_type p=0; p != this->n_processors(); ++p) libmesh_assert_equal_to (requested_ids[p].size(), ghost_objects_from_proc[p]); #endif // Next set ghost object n_comps from other processors - for (processor_id_type p=1; p != libMesh::n_processors(); ++p) + for (processor_id_type p=1; p != this->n_processors(); ++p) { // Trade my requests with processor procup and procdown - processor_id_type procup = (libMesh::processor_id() + p) % - libMesh::n_processors(); - processor_id_type procdown = (libMesh::n_processors() + - libMesh::processor_id() - p) % - libMesh::n_processors(); + processor_id_type procup = (this->processor_id() + p) % + this->n_processors(); + processor_id_type procdown = (this->n_processors() + + this->processor_id() - p) % + this->n_processors(); std::vector request_to_fill; - CommWorld.send_receive(procup, requested_ids[procup], - procdown, request_to_fill); + this->communicator().send_receive(procup, requested_ids[procup], + procdown, request_to_fill); // Fill those requests const unsigned int @@ -356,7 +356,7 @@ void DofMap::set_nonlocal_dof_objects(iterator_type objects_begin, { DofObject *requested = (this->*objects)(mesh, request_to_fill[i]); libmesh_assert(requested); - libmesh_assert_equal_to (requested->processor_id(), libMesh::processor_id()); + libmesh_assert_equal_to (requested->processor_id(), this->processor_id()); libmesh_assert_equal_to (requested->n_var_groups(sys_num), n_var_groups); for (unsigned int vg=0; vg != n_var_groups; ++vg) { @@ -372,8 +372,8 @@ void DofMap::set_nonlocal_dof_objects(iterator_type objects_begin, // Trade back the results std::vector filled_request; - CommWorld.send_receive(procdown, ghost_data, - procup, filled_request); + this->communicator().send_receive(procdown, ghost_data, + procup, filled_request); // And copy the id changes we've now been informed of libmesh_assert_equal_to (filled_request.size(), @@ -838,8 +838,8 @@ void DofMap::distribute_dofs (MeshBase& mesh) libmesh_assert (mesh.is_prepared()); - const processor_id_type proc_id = libMesh::processor_id(); - const processor_id_type n_proc = libMesh::n_processors(); + const processor_id_type proc_id = this->processor_id(); + const processor_id_type n_proc = this->n_processors(); // libmesh_assert_greater (this->n_variables(), 0); libmesh_assert_less (proc_id, n_proc); @@ -867,7 +867,7 @@ void DofMap::distribute_dofs (MeshBase& mesh) // Get DOF counts on all processors std::vector dofs_on_proc(n_proc, 0); - CommWorld.allgather(next_free_dof, dofs_on_proc); + this->communicator().allgather(next_free_dof, dofs_on_proc); // Resize and fill the _first_df and _end_df arrays #ifdef LIBMESH_ENABLE_AMR @@ -904,7 +904,7 @@ void DofMap::distribute_dofs (MeshBase& mesh) // incorrect values on non-local DofObjects. Let's request the // correct values from each other processor. - if (libMesh::n_processors() > 1) + if (this->n_processors() > 1) { this->set_nonlocal_dof_objects(mesh.nodes_begin(), mesh.nodes_end(), @@ -1011,7 +1011,7 @@ void DofMap::distribute_local_dofs_node_major(dof_id_type &next_free_dof, // assign dof numbers (all at once) if this is // our node and if they aren't already there if ((node->n_comp_group(sys_num,vg) > 0) && - (node->processor_id() == libMesh::processor_id()) && + (node->processor_id() == this->processor_id()) && (node->vg_dof_base(sys_num,vg) == DofObject::invalid_id)) { @@ -1100,7 +1100,7 @@ void DofMap::distribute_local_dofs_node_major(dof_id_type &next_free_dof, // Only increment next_free_dof if we're on the processor // that holds this SCALAR variable - if ( libMesh::processor_id() == (libMesh::n_processors()-1) ) + if ( this->processor_id() == (this->n_processors()-1) ) next_free_dof += _n_SCALAR_dofs; #ifdef DEBUG @@ -1175,7 +1175,7 @@ void DofMap::distribute_local_dofs_var_major(dof_id_type &next_free_dof, // assign dof numbers (all at once) if this is // our node and if they aren't already there if ((node->n_comp_group(sys_num,vg) > 0) && - (node->processor_id() == libMesh::processor_id()) && + (node->processor_id() == this->processor_id()) && (node->vg_dof_base(sys_num,vg) == DofObject::invalid_id)) { @@ -1250,7 +1250,7 @@ void DofMap::distribute_local_dofs_var_major(dof_id_type &next_free_dof, // Only increment next_free_dof if we're on the processor // that holds this SCALAR variable - if ( libMesh::processor_id() == (libMesh::n_processors()-1) ) + if ( this->processor_id() == (this->n_processors()-1) ) next_free_dof += _n_SCALAR_dofs; #ifdef DEBUG @@ -1355,7 +1355,7 @@ void DofMap::add_neighbors_to_send_list(MeshBase& mesh) for (dof_id_type i=0; i!=family.size(); ++i) // If the neighbor lives on a different processor - if (family[i]->processor_id() != libMesh::processor_id()) + if (family[i]->processor_id() != this->processor_id()) { // Get the DOF indices for this neighboring element this->dof_indices (family[i], di); @@ -1383,7 +1383,7 @@ void DofMap::add_neighbors_to_send_list(MeshBase& mesh) const Elem* elem = *elem_it; // If this is one of our elements, we've already added it - if (elem->processor_id() == libMesh::processor_id()) + if (elem->processor_id() == this->processor_id()) continue; // Do we need to add the element DOFs? @@ -2649,7 +2649,7 @@ void SparsityPattern::Build::join (const SparsityPattern::Build &other) processor_id_type dbg_proc_id = 0; while (dof_id >= dof_map.end_dof(dbg_proc_id)) dbg_proc_id++; - libmesh_assert (dbg_proc_id != libMesh::processor_id()); + libmesh_assert (dbg_proc_id != this->processor_id()); #endif const SparsityPattern::Row &their_row = it->second; @@ -2686,22 +2686,22 @@ void SparsityPattern::Build::join (const SparsityPattern::Build &other) void SparsityPattern::Build::parallel_sync () { parallel_only(); - CommWorld.verify(need_full_sparsity_pattern); + this->communicator().verify(need_full_sparsity_pattern); const dof_id_type n_global_dofs = dof_map.n_dofs(); - const dof_id_type n_dofs_on_proc = dof_map.n_dofs_on_processor(libMesh::processor_id()); + const dof_id_type n_dofs_on_proc = dof_map.n_dofs_on_processor(this->processor_id()); const dof_id_type local_first_dof = dof_map.first_dof(); const dof_id_type local_end_dof = dof_map.end_dof(); // Trade sparsity rows with other processors - for (processor_id_type p=1; p != libMesh::n_processors(); ++p) + for (processor_id_type p=1; p != this->n_processors(); ++p) { // Push to processor procup while receiving from procdown - processor_id_type procup = (libMesh::processor_id() + p) % - libMesh::n_processors(); - processor_id_type procdown = (libMesh::n_processors() + - libMesh::processor_id() - p) % - libMesh::n_processors(); + processor_id_type procup = (this->processor_id() + p) % + this->n_processors(); + processor_id_type procdown = (this->n_processors() + + this->processor_id() - p) % + this->n_processors(); // Pack the sparsity pattern rows to push to procup std::vector pushed_row_ids, @@ -2719,7 +2719,7 @@ void SparsityPattern::Build::parallel_sync () while (dof_id >= dof_map.end_dof(proc_id)) proc_id++; - libmesh_assert (proc_id != libMesh::processor_id()); + libmesh_assert (proc_id != this->processor_id()); if (proc_id == procup) { @@ -2737,10 +2737,10 @@ void SparsityPattern::Build::parallel_sync () ++it; } - CommWorld.send_receive(procup, pushed_row_ids, - procdown, pushed_row_ids_to_me); - CommWorld.send_receive(procup, pushed_rows, - procdown, pushed_rows_to_me); + this->communicator().send_receive(procup, pushed_row_ids, + procdown, pushed_row_ids_to_me); + this->communicator().send_receive(procup, pushed_rows, + procdown, pushed_rows_to_me); pushed_row_ids.clear(); pushed_rows.clear(); @@ -2850,9 +2850,9 @@ std::string DofMap::get_info() const std::size_t n_nz_size = _n_nz->size(); - CommWorld.max(max_n_nz); - CommWorld.sum(avg_n_nz); - CommWorld.sum(n_nz_size); + this->communicator().max(max_n_nz); + this->communicator().sum(avg_n_nz); + this->communicator().sum(n_nz_size); avg_n_nz /= std::max(n_nz_size,std::size_t(1)); @@ -2866,9 +2866,9 @@ std::string DofMap::get_info() const std::size_t n_oz_size = _n_oz->size(); - CommWorld.max(max_n_oz); - CommWorld.sum(avg_n_oz); - CommWorld.sum(n_oz_size); + this->communicator().max(max_n_oz); + this->communicator().sum(avg_n_oz); + this->communicator().sum(n_oz_size); avg_n_oz /= std::max(n_oz_size,std::size_t(1)); } @@ -2912,10 +2912,10 @@ std::string DofMap::get_info() const n_rhss++; } - CommWorld.sum(n_constraints); - CommWorld.sum(n_rhss); - CommWorld.sum(avg_constraint_length); - CommWorld.max(max_constraint_length); + this->communicator().sum(n_constraints); + this->communicator().sum(n_rhss); + this->communicator().sum(avg_constraint_length); + this->communicator().max(max_constraint_length); os << " DofMap Constraints\n Number of DoF Constraints = " << n_constraints; @@ -2940,7 +2940,7 @@ std::string DofMap::get_info() const { // Only count local constraints, then sum later const Node *node = it->first; - if (node->processor_id() != libMesh::processor_id()) + if (node->processor_id() != this->processor_id()) continue; const NodeConstraintRow& row = it->second.first; @@ -2955,10 +2955,10 @@ std::string DofMap::get_info() const n_node_rhss++; } - CommWorld.sum(n_node_constraints); - CommWorld.sum(n_node_rhss); - CommWorld.sum(avg_node_constraint_length); - CommWorld.max(max_node_constraint_length); + this->communicator().sum(n_node_constraints); + this->communicator().sum(n_node_rhss); + this->communicator().sum(avg_node_constraint_length); + this->communicator().max(max_node_constraint_length); os << "\n Number of Node Constraints = " << n_node_constraints; if (n_node_rhss) diff --git a/src/base/dof_map_constraints.C b/src/base/dof_map_constraints.C index e33ac590e8d..2fad1bd2e6b 100644 --- a/src/base/dof_map_constraints.C +++ b/src/base/dof_map_constraints.C @@ -837,7 +837,7 @@ dof_id_type DofMap::n_constrained_dofs() const parallel_only(); dof_id_type nc_dofs = this->n_local_constrained_dofs(); - CommWorld.sum(nc_dofs); + this->communicator().sum(nc_dofs); return nc_dofs; } @@ -880,10 +880,10 @@ void DofMap::create_dof_constraints(const MeshBase& mesh, Real time) // Even if we don't have constraints, another processor might. bool possible_global_constraints = possible_local_constraints; #if defined(LIBMESH_ENABLE_PERIODIC) || defined(LIBMESH_ENABLE_DIRICHLET) || defined(LIBMESH_ENABLE_AMR) - libmesh_assert(CommWorld.verify(mesh.is_serial())); + libmesh_assert(this->communicator().verify(mesh.is_serial())); if (!mesh.is_serial()) - CommWorld.max(possible_global_constraints); + this->communicator().max(possible_global_constraints); #endif if (!possible_global_constraints) @@ -1006,18 +1006,18 @@ void DofMap::print_dof_constraints(std::ostream& os, std::string local_constraints = this->get_local_constraints(print_nonlocal); - if (libMesh::processor_id()) + if (this->processor_id()) { - CommWorld.send(0, local_constraints); + this->communicator().send(0, local_constraints); } else { os << "Processor 0:\n"; os << local_constraints; - for (processor_id_type i=1; in_processors(); ++i) { - CommWorld.receive(i, local_constraints); + this->communicator().receive(i, local_constraints); os << "Processor " << i << ":\n"; os << local_constraints; } @@ -1043,7 +1043,7 @@ std::string DofMap::get_local_constraints(bool print_nonlocal) const // Skip non-local nodes if requested if (!print_nonlocal && - node->processor_id() != libMesh::processor_id()) + node->processor_id() != this->processor_id()) continue; const NodeConstraintRow& row = it->second.first; @@ -1971,7 +1971,7 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) parallel_only(); // Return immediately if there's nothing to gather - if (libMesh::n_processors() == 1) + if (this->n_processors() == 1) return; // We might get to return immediately if none of the processors @@ -1981,7 +1981,7 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) || !_node_constraints.empty() #endif // LIBMESH_ENABLE_NODE_CONSTRAINTS ; - CommWorld.max(has_constraints); + this->communicator().max(has_constraints); if (!has_constraints) return; @@ -1989,10 +1989,10 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) // which have support on other processors. // Push these out first. { - std::vector > pushed_ids(libMesh::n_processors()); + std::vector > pushed_ids(this->n_processors()); #ifdef LIBMESH_ENABLE_NODE_CONSTRAINTS - std::vector > pushed_node_ids(libMesh::n_processors()); + std::vector > pushed_node_ids(this->n_processors()); #endif MeshBase::element_iterator @@ -2019,14 +2019,14 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) } // Now trade constraint rows - for (processor_id_type p = 0; p != libMesh::n_processors(); ++p) + for (processor_id_type p = 0; p != this->n_processors(); ++p) { // Push to processor procup while receiving from procdown - processor_id_type procup = (libMesh::processor_id() + p) % - libMesh::n_processors(); - processor_id_type procdown = (libMesh::n_processors() + - libMesh::processor_id() - p) % - libMesh::n_processors(); + processor_id_type procup = (this->processor_id() + p) % + this->n_processors(); + processor_id_type procdown = (this->n_processors() + + this->processor_id() - p) % + this->n_processors(); // Pack the dof constraint rows and rhs's to push to procup const std::size_t pushed_ids_size = pushed_ids[procup].size(); @@ -2083,14 +2083,14 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) std::vector > pushed_keys_to_me; std::vector > pushed_vals_to_me; std::vector pushed_rhss_to_me; - CommWorld.send_receive(procup, pushed_ids_from_me, - procdown, pushed_ids_to_me); - CommWorld.send_receive(procup, pushed_keys, - procdown, pushed_keys_to_me); - CommWorld.send_receive(procup, pushed_vals, - procdown, pushed_vals_to_me); - CommWorld.send_receive(procup, pushed_rhss, - procdown, pushed_rhss_to_me); + this->communicator().send_receive(procup, pushed_ids_from_me, + procdown, pushed_ids_to_me); + this->communicator().send_receive(procup, pushed_keys, + procdown, pushed_keys_to_me); + this->communicator().send_receive(procup, pushed_vals, + procdown, pushed_vals_to_me); + this->communicator().send_receive(procup, pushed_rhss, + procdown, pushed_rhss_to_me); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_keys_to_me.size()); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_vals_to_me.size()); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_rhss_to_me.size()); @@ -2103,14 +2103,14 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) std::vector > pushed_node_keys_to_me; std::vector > pushed_node_vals_to_me; std::vector pushed_node_offsets_to_me; - CommWorld.send_receive(procup, pushed_node_ids_from_me, - procdown, pushed_node_ids_to_me); - CommWorld.send_receive(procup, pushed_node_keys, - procdown, pushed_node_keys_to_me); - CommWorld.send_receive(procup, pushed_node_vals, - procdown, pushed_node_vals_to_me); - CommWorld.send_receive(procup, pushed_node_offsets, - procdown, pushed_node_offsets_to_me); + this->communicator().send_receive(procup, pushed_node_ids_from_me, + procdown, pushed_node_ids_to_me); + this->communicator().send_receive(procup, pushed_node_keys, + procdown, pushed_node_keys_to_me); + this->communicator().send_receive(procup, pushed_node_vals, + procdown, pushed_node_vals_to_me); + this->communicator().send_receive(procup, pushed_node_offsets, + procdown, pushed_node_offsets_to_me); // Note that we aren't doing a send_receive on the Nodes // themselves. At this point we should only be pushing out @@ -2198,7 +2198,7 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) // nonempty on *any* processor bool unexpanded_set_nonempty = !unexpanded_dofs.empty() || !unexpanded_nodes.empty(); - CommWorld.max(unexpanded_set_nonempty); + this->communicator().max(unexpanded_set_nonempty); while (unexpanded_set_nonempty) { @@ -2211,13 +2211,13 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) // Request sets to send to each processor std::vector > - requested_dof_ids(libMesh::n_processors()), - requested_node_ids(libMesh::n_processors()); + requested_dof_ids(this->n_processors()), + requested_node_ids(this->n_processors()); // And the sizes of each std::vector - dof_ids_on_proc(libMesh::n_processors(), 0), - node_ids_on_proc(libMesh::n_processors(), 0); + dof_ids_on_proc(this->n_processors(), 0), + node_ids_on_proc(this->n_processors(), 0); // Fill (and thereby sort and uniq!) the main request sets for (DoF_RCSet::iterator i = unexpanded_dofs.begin(); @@ -2251,7 +2251,7 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) // If it's non-local and we haven't already got a // constraint for it, we might need to ask for one - if ((node->processor_id() != libMesh::processor_id()) && + if ((node->processor_id() != this->processor_id()) && !_node_constraints.count(node)) node_request_set.insert(node); } @@ -2277,11 +2277,11 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) i != node_request_set.end(); ++i) { libmesh_assert(*i); - libmesh_assert_less ((*i)->processor_id(), libMesh::n_processors()); + libmesh_assert_less ((*i)->processor_id(), this->n_processors()); node_ids_on_proc[(*i)->processor_id()]++; } - for (processor_id_type p = 0; p != libMesh::n_processors(); ++p) + for (processor_id_type p = 0; p != this->n_processors(); ++p) { requested_dof_ids[p].reserve(dof_ids_on_proc[p]); requested_node_ids[p].reserve(node_ids_on_proc[p]); @@ -2304,20 +2304,20 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) } // Now request constraint rows from other processors - for (processor_id_type p=1; p != libMesh::n_processors(); ++p) + for (processor_id_type p=1; p != this->n_processors(); ++p) { // Trade my requests with processor procup and procdown - processor_id_type procup = (libMesh::processor_id() + p) % - libMesh::n_processors(); - processor_id_type procdown = (libMesh::n_processors() + - libMesh::processor_id() - p) % - libMesh::n_processors(); + processor_id_type procup = (this->processor_id() + p) % + this->n_processors(); + processor_id_type procdown = (this->n_processors() + + this->processor_id() - p) % + this->n_processors(); std::vector dof_request_to_fill, node_request_to_fill; - CommWorld.send_receive(procup, requested_dof_ids[procup], - procdown, dof_request_to_fill); - CommWorld.send_receive(procup, requested_node_ids[procup], - procdown, node_request_to_fill); + this->communicator().send_receive(procup, requested_dof_ids[procup], + procdown, dof_request_to_fill); + this->communicator().send_receive(procup, requested_node_ids[procup], + procdown, node_request_to_fill); // Fill those requests std::vector > dof_row_keys(dof_request_to_fill.size()), @@ -2397,23 +2397,23 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) node_filled_vals; std::vector dof_filled_rhss; std::vector node_filled_rhss; - CommWorld.send_receive(procdown, dof_row_keys, - procup, dof_filled_keys); - CommWorld.send_receive(procdown, dof_row_vals, - procup, dof_filled_vals); - CommWorld.send_receive(procdown, dof_row_rhss, - procup, dof_filled_rhss); + this->communicator().send_receive(procdown, dof_row_keys, + procup, dof_filled_keys); + this->communicator().send_receive(procdown, dof_row_vals, + procup, dof_filled_vals); + this->communicator().send_receive(procdown, dof_row_rhss, + procup, dof_filled_rhss); #ifdef LIBMESH_ENABLE_NODE_CONSTRAINTS - CommWorld.send_receive(procdown, node_row_keys, - procup, node_filled_keys); - CommWorld.send_receive(procdown, node_row_vals, - procup, node_filled_vals); - CommWorld.send_receive(procdown, node_row_rhss, - procup, node_filled_rhss); + this->communicator().send_receive(procdown, node_row_keys, + procup, node_filled_keys); + this->communicator().send_receive(procdown, node_row_vals, + procup, node_filled_vals); + this->communicator().send_receive(procdown, node_row_rhss, + procup, node_filled_rhss); // Constraining nodes might not even exist on our subset of // a distributed mesh, so let's make them exist. - CommWorld.send_receive_packed_range + this->communicator().send_receive_packed_range (procdown, &mesh, nodes_requested.begin(), nodes_requested.end(), procup, &mesh, mesh_inserter_iterator(mesh)); @@ -2472,7 +2472,7 @@ void DofMap::allgather_recursive_constraints(MeshBase& mesh) // nonempty on *any* processor unexpanded_set_nonempty = !unexpanded_dofs.empty() || !unexpanded_nodes.empty(); - CommWorld.max(unexpanded_set_nonempty); + this->communicator().max(unexpanded_set_nonempty); } } @@ -2573,7 +2573,7 @@ void DofMap::scatter_constraints(MeshBase& mesh) parallel_only(); // Return immediately if there's nothing to gather - if (libMesh::n_processors() == 1) + if (this->n_processors() == 1) return; // We might get to return immediately if none of the processors @@ -2583,15 +2583,15 @@ void DofMap::scatter_constraints(MeshBase& mesh) || !_node_constraints.empty() #endif // LIBMESH_ENABLE_NODE_CONSTRAINTS ; - CommWorld.max(has_constraints); + this->communicator().max(has_constraints); if (!has_constraints) return; #ifdef LIBMESH_ENABLE_NODE_CONSTRAINTS - std::vector > pushed_node_ids(libMesh::n_processors()); + std::vector > pushed_node_ids(this->n_processors()); #endif // LIBMESH_ENABLE_NODE_CONSTRAINTS - std::vector > pushed_ids(libMesh::n_processors()); + std::vector > pushed_ids(this->n_processors()); // Collect the dof constraints I need to push to each processor dof_id_type constrained_proc_id = 0; @@ -2602,7 +2602,7 @@ void DofMap::scatter_constraints(MeshBase& mesh) while (constrained >= _end_df[constrained_proc_id]) constrained_proc_id++; - if (constrained_proc_id != libMesh::processor_id()) + if (constrained_proc_id != this->processor_id()) continue; DofConstraintRow &row = i->second.first; @@ -2615,7 +2615,7 @@ void DofMap::scatter_constraints(MeshBase& mesh) while (constraining >= _end_df[constraining_proc_id]) constraining_proc_id++; - if (constraining_proc_id != libMesh::processor_id() && + if (constraining_proc_id != this->processor_id() && constraining_proc_id != constrained_proc_id) pushed_ids[constraining_proc_id].insert(constrained); } @@ -2628,7 +2628,7 @@ void DofMap::scatter_constraints(MeshBase& mesh) { const Node *constrained = i->first; - if (constrained->processor_id() != libMesh::processor_id()) + if (constrained->processor_id() != this->processor_id()) continue; NodeConstraintRow &row = i->second.first; @@ -2637,7 +2637,7 @@ void DofMap::scatter_constraints(MeshBase& mesh) { const Node *constraining = j->first; - if (constraining->processor_id() != libMesh::processor_id() && + if (constraining->processor_id() != this->processor_id() && constraining->processor_id() != constrained->processor_id()) pushed_node_ids[constraining->processor_id()].insert(constrained->id()); } @@ -2645,14 +2645,14 @@ void DofMap::scatter_constraints(MeshBase& mesh) #endif // LIBMESH_ENABLE_NODE_CONSTRAINTS // Now trade constraint rows - for (processor_id_type p = 0; p != libMesh::n_processors(); ++p) + for (processor_id_type p = 0; p != this->n_processors(); ++p) { // Push to processor procup while receiving from procdown - processor_id_type procup = (libMesh::processor_id() + p) % - libMesh::n_processors(); - processor_id_type procdown = (libMesh::n_processors() + - libMesh::processor_id() - p) % - libMesh::n_processors(); + processor_id_type procup = (this->processor_id() + p) % + this->n_processors(); + processor_id_type procdown = (this->n_processors() + + this->processor_id() - p) % + this->n_processors(); // Pack the dof constraint rows and rhs's to push to procup const std::size_t pushed_ids_size = pushed_ids[procup].size(); @@ -2721,14 +2721,14 @@ void DofMap::scatter_constraints(MeshBase& mesh) std::vector > pushed_keys_to_me; std::vector > pushed_vals_to_me; std::vector pushed_rhss_to_me; - CommWorld.send_receive(procup, pushed_ids_from_me, - procdown, pushed_ids_to_me); - CommWorld.send_receive(procup, pushed_keys, - procdown, pushed_keys_to_me); - CommWorld.send_receive(procup, pushed_vals, - procdown, pushed_vals_to_me); - CommWorld.send_receive(procup, pushed_rhss, - procdown, pushed_rhss_to_me); + this->communicator().send_receive(procup, pushed_ids_from_me, + procdown, pushed_ids_to_me); + this->communicator().send_receive(procup, pushed_keys, + procdown, pushed_keys_to_me); + this->communicator().send_receive(procup, pushed_vals, + procdown, pushed_vals_to_me); + this->communicator().send_receive(procup, pushed_rhss, + procdown, pushed_rhss_to_me); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_keys_to_me.size()); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_vals_to_me.size()); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_rhss_to_me.size()); @@ -2741,18 +2741,18 @@ void DofMap::scatter_constraints(MeshBase& mesh) std::vector > pushed_node_keys_to_me; std::vector > pushed_node_vals_to_me; std::vector pushed_node_offsets_to_me; - CommWorld.send_receive(procup, pushed_node_ids_from_me, - procdown, pushed_node_ids_to_me); - CommWorld.send_receive(procup, pushed_node_keys, - procdown, pushed_node_keys_to_me); - CommWorld.send_receive(procup, pushed_node_vals, - procdown, pushed_node_vals_to_me); - CommWorld.send_receive(procup, pushed_node_offsets, - procdown, pushed_node_offsets_to_me); + this->communicator().send_receive(procup, pushed_node_ids_from_me, + procdown, pushed_node_ids_to_me); + this->communicator().send_receive(procup, pushed_node_keys, + procdown, pushed_node_keys_to_me); + this->communicator().send_receive(procup, pushed_node_vals, + procdown, pushed_node_vals_to_me); + this->communicator().send_receive(procup, pushed_node_offsets, + procdown, pushed_node_offsets_to_me); // Constraining nodes might not even exist on our subset of // a distributed mesh, so let's make them exist. - CommWorld.send_receive_packed_range + this->communicator().send_receive_packed_range (procup, &mesh, pushed_nodes.begin(), pushed_nodes.end(), procdown, &mesh, mesh_inserter_iterator(mesh)); @@ -2835,7 +2835,7 @@ void DofMap::scatter_constraints(MeshBase& mesh) while (constraining >= _end_df[constraining_proc_id]) constraining_proc_id++; - if (constraining_proc_id == libMesh::processor_id()) + if (constraining_proc_id == this->processor_id()) dof_id_constrains[constraining].insert(constrained); } } @@ -2843,7 +2843,7 @@ void DofMap::scatter_constraints(MeshBase& mesh) // Loop over all foreign elements, find any supporting our // constrained dof indices. pushed_ids.clear(); - pushed_ids.resize(libMesh::n_processors()); + pushed_ids.resize(this->n_processors()); MeshBase::const_element_iterator it = mesh.active_not_local_elements_begin(), end = mesh.active_not_local_elements_end(); @@ -2879,14 +2879,14 @@ void DofMap::scatter_constraints(MeshBase& mesh) } // One last trade of constraint rows - for (processor_id_type p = 0; p != libMesh::n_processors(); ++p) + for (processor_id_type p = 0; p != this->n_processors(); ++p) { // Push to processor procup while receiving from procdown - processor_id_type procup = (libMesh::processor_id() + p) % - libMesh::n_processors(); - processor_id_type procdown = (libMesh::n_processors() + - libMesh::processor_id() - p) % - libMesh::n_processors(); + processor_id_type procup = (this->processor_id() + p) % + this->n_processors(); + processor_id_type procdown = (this->n_processors() + + this->processor_id() - p) % + this->n_processors(); // Pack the dof constraint rows and rhs's to push to procup const std::size_t pushed_ids_size = pushed_ids[procup].size(); @@ -2920,14 +2920,14 @@ void DofMap::scatter_constraints(MeshBase& mesh) std::vector > pushed_keys_to_me; std::vector > pushed_vals_to_me; std::vector pushed_rhss_to_me; - CommWorld.send_receive(procup, pushed_ids_from_me, - procdown, pushed_ids_to_me); - CommWorld.send_receive(procup, pushed_keys, - procdown, pushed_keys_to_me); - CommWorld.send_receive(procup, pushed_vals, - procdown, pushed_vals_to_me); - CommWorld.send_receive(procup, pushed_rhss, - procdown, pushed_rhss_to_me); + this->communicator().send_receive(procup, pushed_ids_from_me, + procdown, pushed_ids_to_me); + this->communicator().send_receive(procup, pushed_keys, + procdown, pushed_keys_to_me); + this->communicator().send_receive(procup, pushed_vals, + procdown, pushed_vals_to_me); + this->communicator().send_receive(procup, pushed_rhss, + procdown, pushed_rhss_to_me); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_keys_to_me.size()); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_vals_to_me.size()); libmesh_assert_equal_to (pushed_ids_to_me.size(), pushed_rhss_to_me.size()); @@ -2961,13 +2961,13 @@ void DofMap::add_constraints_to_send_list() parallel_only(); // Return immediately if there's nothing to gather - if (libMesh::n_processors() == 1) + if (this->n_processors() == 1) return; // We might get to return immediately if none of the processors // found any constraints unsigned int has_constraints = !_dof_constraints.empty(); - CommWorld.max(has_constraints); + this->communicator().max(has_constraints); if (!has_constraints) return; diff --git a/src/base/sparsity_pattern.C b/src/base/sparsity_pattern.C new file mode 100644 index 00000000000..5a2e9272463 --- /dev/null +++ b/src/base/sparsity_pattern.C @@ -0,0 +1,70 @@ +// The libMesh Finite Element Library. +// Copyright (C) 2002-2012 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner + +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. + +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + +// Local Includes ----------------------------------- +#include "libmesh/dof_map.h" +#include "libmesh/sparsity_pattern.h" + + + +namespace libMesh +{ + namespace SparsityPattern + { + + + //------------------------------------------------------- + // we need to implement these constructors here so that + // a full DofMap definition is available. + Build::Build (const MeshBase &mesh_in, + const DofMap &dof_map_in, + const CouplingMatrix *dof_coupling_in, + const bool implicit_neighbor_dofs_in, + const bool need_full_sparsity_pattern_in) : + ParallelObject(dof_map_in), + mesh(mesh_in), + dof_map(dof_map_in), + dof_coupling(dof_coupling_in), + implicit_neighbor_dofs(implicit_neighbor_dofs_in), + need_full_sparsity_pattern(need_full_sparsity_pattern_in), + sparsity_pattern(), + nonlocal_pattern(), + n_nz(), + n_oz() + {} + + + + Build::Build (Build &other, Threads::split) : + ParallelObject(other), + mesh(other.mesh), + dof_map(other.dof_map), + dof_coupling(other.dof_coupling), + implicit_neighbor_dofs(other.implicit_neighbor_dofs), + need_full_sparsity_pattern(other.need_full_sparsity_pattern), + sparsity_pattern(), + nonlocal_pattern(), + n_nz(), + n_oz() + {} + + + + } // namespace SparsityPattern +} // namespace libMesh diff --git a/src/libmesh_SOURCES b/src/libmesh_SOURCES index bb7f4f97079..21dbd55260f 100644 --- a/src/libmesh_SOURCES +++ b/src/libmesh_SOURCES @@ -12,6 +12,7 @@ libmesh_SOURCES = \ src/base/print_trace.C \ src/base/reference_counted_object.C \ src/base/reference_counter.C \ + src/base/sparsity_pattern.C \ src/error_estimation/adjoint_refinement_estimator.C \ src/error_estimation/adjoint_residual_error_estimator.C \ src/error_estimation/discontinuity_measure.C \