diff --git a/include/numerics/petsc_matrix_shell_matrix.h b/include/numerics/petsc_matrix_shell_matrix.h index 7ef5e11faf0..1b79511631e 100644 --- a/include/numerics/petsc_matrix_shell_matrix.h +++ b/include/numerics/petsc_matrix_shell_matrix.h @@ -58,6 +58,27 @@ class PetscMatrixShellMatrix : public PetscMatrixBase virtual bool require_sparsity_pattern() const override { return false; } + virtual void zero() override; + virtual std::unique_ptr> zero_clone() const override; + virtual std::unique_ptr> clone() const override; + virtual void set(const numeric_index_type i, const numeric_index_type j, const T value) override; + virtual void add(const numeric_index_type i, const numeric_index_type j, const T value) override; + virtual void add_matrix(const DenseMatrix & dm, + const std::vector & rows, + const std::vector & cols) override; + virtual void add_matrix(const DenseMatrix & dm, + const std::vector & dof_indices) override; + virtual void add(const T a, const SparseMatrix & X) override; + virtual T operator()(const numeric_index_type i, const numeric_index_type j) const override; + virtual Real l1_norm() const override; + virtual Real linfty_norm() const override; + virtual void print_personal(std::ostream & os = libMesh::out) const override; + virtual void get_diagonal(NumericVector & dest) const override; + virtual void get_transpose(SparseMatrix & dest) const override; + virtual void get_row(numeric_index_type i, + std::vector & indices, + std::vector & values) const override; + private: // Make this private because we mark as initialized after we've done our initialization, and we // don't want derived classes to mistakenly register their data as initialized (or not) diff --git a/include/numerics/petsc_mffd_matrix.h b/include/numerics/petsc_mffd_matrix.h index 17bcb5d6f72..a3447e0bbe0 100644 --- a/include/numerics/petsc_mffd_matrix.h +++ b/include/numerics/petsc_mffd_matrix.h @@ -48,7 +48,15 @@ class PetscMFFDMatrix : public PetscMatrixBase explicit PetscMFFDMatrix(const Parallel::Communicator & comm_in); - PetscMFFDMatrix & operator=(Mat m); + /** + * Adopt an existing, externally-owned Mat, without destroying it when this + * object goes out of scope. \p set_context controls whether we attach a + * context pointer to \p m allowing \p get_context() to recover this object + * from the Mat later; skip this when this wrapper is short-lived (e.g. a + * function-local variable) so we don't leave a dangling context on \p m + * after we're destroyed. + */ + void assign(Mat m, bool set_context); virtual void init(const numeric_index_type, const numeric_index_type, @@ -101,11 +109,14 @@ PetscMFFDMatrix::PetscMFFDMatrix(const Parallel::Communicator & comm_in) } template -PetscMFFDMatrix & -PetscMFFDMatrix::operator=(Mat m) +void +PetscMFFDMatrix::assign(Mat m, bool set_context) { this->_mat = m; - return *this; + this->_is_initialized = true; + this->_destroy_mat_on_exit = false; + if (set_context) + this->set_context(); } template diff --git a/include/solvers/nonlinear_solver.h b/include/solvers/nonlinear_solver.h index 19947d629ba..f5a48f18642 100644 --- a/include/solvers/nonlinear_solver.h +++ b/include/solvers/nonlinear_solver.h @@ -102,6 +102,21 @@ class NonlinearSolver : public ReferenceCountedObject>, const double, // Stopping tolerance const unsigned int) = 0; // N. Iterations + /** + * Solves the nonlinear system using \p jac_in as the actual Jacobian operator and \p pre_in as + * the preconditioning matrix -- which may be the same object (the common case) or genuinely + * distinct (e.g. a matrix-free operator paired with an assembled preconditioning matrix). + */ + virtual std::pair solve (SparseMatrix & /* jac_in */, + SparseMatrix & /* pre_in */, + NumericVector & /* x_in */, + NumericVector & /* r_in */, + const double /* tol */, + const unsigned int /* m_its */) + { + libmesh_not_implemented(); + } + /** * Prints a useful message about why the latest nonlinear solve * con(di)verged. diff --git a/include/solvers/petsc_nonlinear_solver.h b/include/solvers/petsc_nonlinear_solver.h index 04ccd4bf8fd..a478b3c7c1f 100644 --- a/include/solvers/petsc_nonlinear_solver.h +++ b/include/solvers/petsc_nonlinear_solver.h @@ -107,11 +107,23 @@ class PetscNonlinearSolver : public NonlinearSolver SNES snes(const char * name = nullptr); /** - * Call the Petsc solver. It calls the method below, using the - * same matrix for the system and preconditioner matrices. + * Call the Petsc solver, using the same matrix for the system and preconditioner matrices. Calls + * the two-matrix overload below with \p pre_in for both. */ virtual std::pair - solve (SparseMatrix &, // System Jacobian Matrix + solve (SparseMatrix & pre_in, // System Preconditioning Matrix + NumericVector &, // Solution vector + NumericVector &, // Residual vector + const double, // Stopping tolerance + const unsigned int) override; // N. Iterations + + /** + * Call the Petsc solver, using \p jac_in as the actual SNES Jacobian operator (Amat) and + * \p pre_in as the preconditioning matrix (Pmat). + */ + virtual std::pair + solve (SparseMatrix & jac_in, // Jacobian operator matrix (Amat) + SparseMatrix & pre_in, // Preconditioning matrix (Pmat) NumericVector &, // Solution vector NumericVector &, // Residual vector const double, // Stopping tolerance @@ -291,9 +303,6 @@ class PetscNonlinearSolver : public NonlinearSolver PetscDMWrapper _dm_wrapper; #endif - /// Wrapper for matrix-free finite-difference Jacobians - PetscMFFDMatrix _mffd_jac; - private: friend ResidualContext libmesh_petsc_snes_residual_helper (SNES snes, Vec x, void * ctx); friend PetscErrorCode libmesh_petsc_snes_residual (SNES snes, Vec x, Vec r, void * ctx); diff --git a/include/systems/nonlinear_implicit_system.h b/include/systems/nonlinear_implicit_system.h index a8eeae8bbcd..ea3e626cddd 100644 --- a/include/systems/nonlinear_implicit_system.h +++ b/include/systems/nonlinear_implicit_system.h @@ -257,10 +257,20 @@ class NonlinearImplicitSystem : public ImplicitSystem virtual void reinit () override; /** - * Assembles & solves the nonlinear system R(x) = 0. + * Assembles & solves the nonlinear system R(x) = 0. If a matrix has been registered via + * set_operator_matrix(), it is used as the actual Jacobian operator (Amat) while \p matrix + * remains the preconditioning matrix (Pmat); otherwise \p matrix is used for both, as usual. */ virtual void solve () override; + /** + * Set a matrix to use as the actual Jacobian operator (Amat) on the next solve(), distinct from + * \p matrix, which continues to be used as the preconditioning matrix (Pmat). Pass nullptr (the + * default) to restore the ordinary behavior of using \p matrix for both. Only solve() itself + * reads this value back, so there is no public getter. + */ + void set_operator_matrix(SparseMatrix * mat) { _operator_matrix = mat; } + /** * \returns An integer corresponding to the upper iteration count * limit and a Real corresponding to the convergence tolerance to @@ -335,6 +345,12 @@ class NonlinearImplicitSystem : public ImplicitSystem * The final residual for the nonlinear system R(x) */ Real _final_nonlinear_residual; + + /** + * An optional matrix to use as the actual Jacobian operator (Amat), distinct from \p matrix + * (used as the preconditioning matrix, Pmat). See set_operator_matrix(). + */ + SparseMatrix * _operator_matrix; }; } // namespace libMesh diff --git a/src/numerics/petsc_matrix_shell_matrix.C b/src/numerics/petsc_matrix_shell_matrix.C index 5b089db2c26..5b1c22b6308 100644 --- a/src/numerics/petsc_matrix_shell_matrix.C +++ b/src/numerics/petsc_matrix_shell_matrix.C @@ -54,6 +54,116 @@ PetscMatrixShellMatrix::init(ParallelType libmesh_dbg_var(type)) this->set_context(); } +template +void +PetscMatrixShellMatrix::zero() +{ + libmesh_error(); +} + +template +std::unique_ptr> +PetscMatrixShellMatrix::zero_clone() const +{ + libmesh_error(); +} + +template +std::unique_ptr> +PetscMatrixShellMatrix::clone() const +{ + libmesh_not_implemented(); +} + +template +void +PetscMatrixShellMatrix::set(const numeric_index_type, const numeric_index_type, const T) +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::add(const numeric_index_type, const numeric_index_type, const T) +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::add_matrix(const DenseMatrix &, + const std::vector &, + const std::vector &) +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::add_matrix(const DenseMatrix &, + const std::vector &) +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::add(const T, const SparseMatrix &) +{ + libmesh_error(); +} + +template +T +PetscMatrixShellMatrix::operator()(const numeric_index_type, const numeric_index_type) const +{ + libmesh_error(); +} + +template +Real +PetscMatrixShellMatrix::l1_norm() const +{ + libmesh_error(); +} + +template +Real +PetscMatrixShellMatrix::linfty_norm() const +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::print_personal(std::ostream &) const +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::get_diagonal(NumericVector &) const +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::get_transpose(SparseMatrix &) const +{ + libmesh_error(); +} + +template +void +PetscMatrixShellMatrix::get_row(numeric_index_type, + std::vector &, + std::vector &) const +{ + libmesh_error(); +} + template class LIBMESH_EXPORT PetscMatrixShellMatrix; } // namespace libMesh diff --git a/src/solvers/petsc_nonlinear_solver.C b/src/solvers/petsc_nonlinear_solver.C index 4cc0ccd6d4b..b965eca70ef 100644 --- a/src/solvers/petsc_nonlinear_solver.C +++ b/src/solvers/petsc_nonlinear_solver.C @@ -450,7 +450,9 @@ extern "C" { libmesh_assert(!Jac); Jac = &mffd_jac; - mffd_jac = jac; + // mffd_jac is function-local, so don't attach a context to jac here -- it would + // dangle once mffd_jac is destroyed at the end of this call. + mffd_jac.assign(jac, /*set_context=*/false); } // We already computed the Jacobian during the residual evaluation @@ -696,8 +698,7 @@ PetscNonlinearSolver::PetscNonlinearSolver (sys_type & system_in) : _default_monitor(true), _snesmf_reuse_base(true), _computing_base_vector(true), - _setup_reuse(false), - _mffd_jac(this->_communicator) + _setup_reuse(false) { } @@ -899,6 +900,18 @@ PetscNonlinearSolver::build_mat_null_space(NonlinearImplicitSystem::ComputeVe template std::pair PetscNonlinearSolver::solve (SparseMatrix & pre_in, // System Preconditioning Matrix + NumericVector & x_in, // Solution vector + NumericVector & r_in, // Residual vector + const double tol, // Stopping tolerance + const unsigned int m_its) +{ + return this->solve(pre_in, pre_in, x_in, r_in, tol, m_its); +} + +template +std::pair +PetscNonlinearSolver::solve (SparseMatrix & jac_in, // Jacobian operator matrix (Amat) + SparseMatrix & pre_in, // Preconditioning matrix (Pmat) NumericVector & x_in, // Solution vector NumericVector & r_in, // Residual vector const double, // Stopping tolerance @@ -910,6 +923,7 @@ PetscNonlinearSolver::solve (SparseMatrix & pre_in, // System Preconditi this->init (); // Make sure the data passed in are really of Petsc types + PetscMatrixBase * jac = cast_ptr *>(&jac_in); PetscMatrixBase * pre = cast_ptr *>(&pre_in); PetscVector * x = cast_ptr *>(&x_in); PetscVector * r = cast_ptr *>(&r_in); @@ -951,7 +965,7 @@ PetscNonlinearSolver::solve (SparseMatrix & pre_in, // System Preconditi // Only set the jacobian function if we've been provided with something to call. // This allows a user to set their own jacobian function if they want to if (this->jacobian || this->jacobian_object || this->residual_and_jacobian_object) - LibmeshPetscCall(SNESSetJacobian (_snes, pre->mat(), pre->mat(), libmesh_petsc_snes_jacobian, this)); + LibmeshPetscCall(SNESSetJacobian (_snes, jac->mat(), pre->mat(), libmesh_petsc_snes_jacobian, this)); // Have the Krylov subspace method use our good initial guess rather than 0 KSP ksp; diff --git a/src/systems/nonlinear_implicit_system.C b/src/systems/nonlinear_implicit_system.C index f4f764e307c..f0fec223cf5 100644 --- a/src/systems/nonlinear_implicit_system.C +++ b/src/systems/nonlinear_implicit_system.C @@ -38,7 +38,8 @@ NonlinearImplicitSystem::NonlinearImplicitSystem (EquationSystems & es, nonlinear_solver (NonlinearSolver::build(*this)), diff_solver (), _n_nonlinear_iterations (0), - _final_nonlinear_residual (1.e20) + _final_nonlinear_residual (1.e20), + _operator_matrix (nullptr) { // Set default parameters // These were chosen to match the Petsc defaults @@ -223,10 +224,20 @@ void NonlinearImplicitSystem::solve () // Solve the nonlinear system. // Store the number of nonlinear iterations required to // solve and the final residual. - std::tie(_n_nonlinear_iterations, _final_nonlinear_residual) = - nonlinear_solver->solve (*matrix, *solution, *rhs, - nonlinear_solver->relative_residual_tolerance, - nonlinear_solver->max_linear_iterations); + // + // If a distinct Jacobian operator matrix has been registered (see + // set_operator_matrix()), use it as Amat while *matrix remains the preconditioning matrix + // (Pmat); otherwise use the ordinary single-matrix solve. + if (_operator_matrix) + std::tie(_n_nonlinear_iterations, _final_nonlinear_residual) = + nonlinear_solver->solve (*_operator_matrix, *matrix, *solution, *rhs, + nonlinear_solver->relative_residual_tolerance, + nonlinear_solver->max_linear_iterations); + else + std::tie(_n_nonlinear_iterations, _final_nonlinear_residual) = + nonlinear_solver->solve (*matrix, *solution, *rhs, + nonlinear_solver->relative_residual_tolerance, + nonlinear_solver->max_linear_iterations); } // Update the system after the solve diff --git a/tests/Makefile.am b/tests/Makefile.am index 59756d9f17f..a0b1af6b2cc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -116,6 +116,8 @@ unit_tests_sources = \ numerics/sparse_matrix_test.h \ numerics/dense_matrix_test.C \ numerics/petsc_matrix_test.C \ + numerics/petsc_matrix_shell_matrix_test.C \ + numerics/petsc_mffd_matrix_test.C \ numerics/diagonal_matrix_test.C \ numerics/lumped_mass_matrix_test.C \ numerics/eigen_sparse_matrix_test.C \ @@ -145,6 +147,7 @@ unit_tests_sources = \ systems/periodic_bc_test.C \ systems/disjoint_neighbor_test.C \ systems/systems_test.C \ + systems/nonlinear_implicit_system_test.C \ utils/parameters_test.C \ utils/point_locator_test.C \ utils/rb_parameters_test.C \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 60911f5606e..83f2f941f35 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -258,6 +258,8 @@ am__unit_tests_dbg_SOURCES_DIST = driver.C libmesh_cppunit.h \ numerics/type_vector_test.h numerics/vector_value_test.C \ numerics/type_tensor_test.C numerics/sparse_matrix_test.h \ numerics/dense_matrix_test.C numerics/petsc_matrix_test.C \ + numerics/petsc_matrix_shell_matrix_test.C \ + numerics/petsc_mffd_matrix_test.C \ numerics/diagonal_matrix_test.C \ numerics/lumped_mass_matrix_test.C \ numerics/eigen_sparse_matrix_test.C \ @@ -279,6 +281,7 @@ am__unit_tests_dbg_SOURCES_DIST = driver.C libmesh_cppunit.h \ systems/constraint_operator_test.C \ systems/equation_systems_test.C systems/periodic_bc_test.C \ systems/disjoint_neighbor_test.C systems/systems_test.C \ + systems/nonlinear_implicit_system_test.C \ utils/parameters_test.C utils/point_locator_test.C \ utils/rb_parameters_test.C utils/transparent_comparator.C \ utils/vectormap_test.C utils/xdr_test.C fparser/autodiff.C @@ -372,6 +375,8 @@ am__objects_2 = unit_tests_dbg-driver.$(OBJEXT) \ numerics/unit_tests_dbg-type_tensor_test.$(OBJEXT) \ numerics/unit_tests_dbg-dense_matrix_test.$(OBJEXT) \ numerics/unit_tests_dbg-petsc_matrix_test.$(OBJEXT) \ + numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.$(OBJEXT) \ + numerics/unit_tests_dbg-petsc_mffd_matrix_test.$(OBJEXT) \ numerics/unit_tests_dbg-diagonal_matrix_test.$(OBJEXT) \ numerics/unit_tests_dbg-lumped_mass_matrix_test.$(OBJEXT) \ numerics/unit_tests_dbg-eigen_sparse_matrix_test.$(OBJEXT) \ @@ -399,6 +404,7 @@ am__objects_2 = unit_tests_dbg-driver.$(OBJEXT) \ systems/unit_tests_dbg-periodic_bc_test.$(OBJEXT) \ systems/unit_tests_dbg-disjoint_neighbor_test.$(OBJEXT) \ systems/unit_tests_dbg-systems_test.$(OBJEXT) \ + systems/unit_tests_dbg-nonlinear_implicit_system_test.$(OBJEXT) \ utils/unit_tests_dbg-parameters_test.$(OBJEXT) \ utils/unit_tests_dbg-point_locator_test.$(OBJEXT) \ utils/unit_tests_dbg-rb_parameters_test.$(OBJEXT) \ @@ -467,6 +473,8 @@ am__unit_tests_devel_SOURCES_DIST = driver.C libmesh_cppunit.h \ numerics/type_vector_test.h numerics/vector_value_test.C \ numerics/type_tensor_test.C numerics/sparse_matrix_test.h \ numerics/dense_matrix_test.C numerics/petsc_matrix_test.C \ + numerics/petsc_matrix_shell_matrix_test.C \ + numerics/petsc_mffd_matrix_test.C \ numerics/diagonal_matrix_test.C \ numerics/lumped_mass_matrix_test.C \ numerics/eigen_sparse_matrix_test.C \ @@ -488,6 +496,7 @@ am__unit_tests_devel_SOURCES_DIST = driver.C libmesh_cppunit.h \ systems/constraint_operator_test.C \ systems/equation_systems_test.C systems/periodic_bc_test.C \ systems/disjoint_neighbor_test.C systems/systems_test.C \ + systems/nonlinear_implicit_system_test.C \ utils/parameters_test.C utils/point_locator_test.C \ utils/rb_parameters_test.C utils/transparent_comparator.C \ utils/vectormap_test.C utils/xdr_test.C fparser/autodiff.C @@ -580,6 +589,8 @@ am__objects_4 = unit_tests_devel-driver.$(OBJEXT) \ numerics/unit_tests_devel-type_tensor_test.$(OBJEXT) \ numerics/unit_tests_devel-dense_matrix_test.$(OBJEXT) \ numerics/unit_tests_devel-petsc_matrix_test.$(OBJEXT) \ + numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.$(OBJEXT) \ + numerics/unit_tests_devel-petsc_mffd_matrix_test.$(OBJEXT) \ numerics/unit_tests_devel-diagonal_matrix_test.$(OBJEXT) \ numerics/unit_tests_devel-lumped_mass_matrix_test.$(OBJEXT) \ numerics/unit_tests_devel-eigen_sparse_matrix_test.$(OBJEXT) \ @@ -607,6 +618,7 @@ am__objects_4 = unit_tests_devel-driver.$(OBJEXT) \ systems/unit_tests_devel-periodic_bc_test.$(OBJEXT) \ systems/unit_tests_devel-disjoint_neighbor_test.$(OBJEXT) \ systems/unit_tests_devel-systems_test.$(OBJEXT) \ + systems/unit_tests_devel-nonlinear_implicit_system_test.$(OBJEXT) \ utils/unit_tests_devel-parameters_test.$(OBJEXT) \ utils/unit_tests_devel-point_locator_test.$(OBJEXT) \ utils/unit_tests_devel-rb_parameters_test.$(OBJEXT) \ @@ -693,6 +705,8 @@ am__unit_tests_oprof_SOURCES_DIST = driver.C libmesh_cppunit.h \ numerics/type_vector_test.h numerics/vector_value_test.C \ numerics/type_tensor_test.C numerics/sparse_matrix_test.h \ numerics/dense_matrix_test.C numerics/petsc_matrix_test.C \ + numerics/petsc_matrix_shell_matrix_test.C \ + numerics/petsc_mffd_matrix_test.C \ numerics/diagonal_matrix_test.C \ numerics/lumped_mass_matrix_test.C \ numerics/eigen_sparse_matrix_test.C \ @@ -714,6 +728,7 @@ am__unit_tests_oprof_SOURCES_DIST = driver.C libmesh_cppunit.h \ systems/constraint_operator_test.C \ systems/equation_systems_test.C systems/periodic_bc_test.C \ systems/disjoint_neighbor_test.C systems/systems_test.C \ + systems/nonlinear_implicit_system_test.C \ utils/parameters_test.C utils/point_locator_test.C \ utils/rb_parameters_test.C utils/transparent_comparator.C \ utils/vectormap_test.C utils/xdr_test.C fparser/autodiff.C @@ -806,6 +821,8 @@ am__objects_6 = unit_tests_oprof-driver.$(OBJEXT) \ numerics/unit_tests_oprof-type_tensor_test.$(OBJEXT) \ numerics/unit_tests_oprof-dense_matrix_test.$(OBJEXT) \ numerics/unit_tests_oprof-petsc_matrix_test.$(OBJEXT) \ + numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.$(OBJEXT) \ + numerics/unit_tests_oprof-petsc_mffd_matrix_test.$(OBJEXT) \ numerics/unit_tests_oprof-diagonal_matrix_test.$(OBJEXT) \ numerics/unit_tests_oprof-lumped_mass_matrix_test.$(OBJEXT) \ numerics/unit_tests_oprof-eigen_sparse_matrix_test.$(OBJEXT) \ @@ -833,6 +850,7 @@ am__objects_6 = unit_tests_oprof-driver.$(OBJEXT) \ systems/unit_tests_oprof-periodic_bc_test.$(OBJEXT) \ systems/unit_tests_oprof-disjoint_neighbor_test.$(OBJEXT) \ systems/unit_tests_oprof-systems_test.$(OBJEXT) \ + systems/unit_tests_oprof-nonlinear_implicit_system_test.$(OBJEXT) \ utils/unit_tests_oprof-parameters_test.$(OBJEXT) \ utils/unit_tests_oprof-point_locator_test.$(OBJEXT) \ utils/unit_tests_oprof-rb_parameters_test.$(OBJEXT) \ @@ -897,6 +915,8 @@ am__unit_tests_opt_SOURCES_DIST = driver.C libmesh_cppunit.h \ numerics/type_vector_test.h numerics/vector_value_test.C \ numerics/type_tensor_test.C numerics/sparse_matrix_test.h \ numerics/dense_matrix_test.C numerics/petsc_matrix_test.C \ + numerics/petsc_matrix_shell_matrix_test.C \ + numerics/petsc_mffd_matrix_test.C \ numerics/diagonal_matrix_test.C \ numerics/lumped_mass_matrix_test.C \ numerics/eigen_sparse_matrix_test.C \ @@ -918,6 +938,7 @@ am__unit_tests_opt_SOURCES_DIST = driver.C libmesh_cppunit.h \ systems/constraint_operator_test.C \ systems/equation_systems_test.C systems/periodic_bc_test.C \ systems/disjoint_neighbor_test.C systems/systems_test.C \ + systems/nonlinear_implicit_system_test.C \ utils/parameters_test.C utils/point_locator_test.C \ utils/rb_parameters_test.C utils/transparent_comparator.C \ utils/vectormap_test.C utils/xdr_test.C fparser/autodiff.C @@ -1010,6 +1031,8 @@ am__objects_8 = unit_tests_opt-driver.$(OBJEXT) \ numerics/unit_tests_opt-type_tensor_test.$(OBJEXT) \ numerics/unit_tests_opt-dense_matrix_test.$(OBJEXT) \ numerics/unit_tests_opt-petsc_matrix_test.$(OBJEXT) \ + numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.$(OBJEXT) \ + numerics/unit_tests_opt-petsc_mffd_matrix_test.$(OBJEXT) \ numerics/unit_tests_opt-diagonal_matrix_test.$(OBJEXT) \ numerics/unit_tests_opt-lumped_mass_matrix_test.$(OBJEXT) \ numerics/unit_tests_opt-eigen_sparse_matrix_test.$(OBJEXT) \ @@ -1037,6 +1060,7 @@ am__objects_8 = unit_tests_opt-driver.$(OBJEXT) \ systems/unit_tests_opt-periodic_bc_test.$(OBJEXT) \ systems/unit_tests_opt-disjoint_neighbor_test.$(OBJEXT) \ systems/unit_tests_opt-systems_test.$(OBJEXT) \ + systems/unit_tests_opt-nonlinear_implicit_system_test.$(OBJEXT) \ utils/unit_tests_opt-parameters_test.$(OBJEXT) \ utils/unit_tests_opt-point_locator_test.$(OBJEXT) \ utils/unit_tests_opt-rb_parameters_test.$(OBJEXT) \ @@ -1101,6 +1125,8 @@ am__unit_tests_prof_SOURCES_DIST = driver.C libmesh_cppunit.h \ numerics/type_vector_test.h numerics/vector_value_test.C \ numerics/type_tensor_test.C numerics/sparse_matrix_test.h \ numerics/dense_matrix_test.C numerics/petsc_matrix_test.C \ + numerics/petsc_matrix_shell_matrix_test.C \ + numerics/petsc_mffd_matrix_test.C \ numerics/diagonal_matrix_test.C \ numerics/lumped_mass_matrix_test.C \ numerics/eigen_sparse_matrix_test.C \ @@ -1122,6 +1148,7 @@ am__unit_tests_prof_SOURCES_DIST = driver.C libmesh_cppunit.h \ systems/constraint_operator_test.C \ systems/equation_systems_test.C systems/periodic_bc_test.C \ systems/disjoint_neighbor_test.C systems/systems_test.C \ + systems/nonlinear_implicit_system_test.C \ utils/parameters_test.C utils/point_locator_test.C \ utils/rb_parameters_test.C utils/transparent_comparator.C \ utils/vectormap_test.C utils/xdr_test.C fparser/autodiff.C @@ -1214,6 +1241,8 @@ am__objects_10 = unit_tests_prof-driver.$(OBJEXT) \ numerics/unit_tests_prof-type_tensor_test.$(OBJEXT) \ numerics/unit_tests_prof-dense_matrix_test.$(OBJEXT) \ numerics/unit_tests_prof-petsc_matrix_test.$(OBJEXT) \ + numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.$(OBJEXT) \ + numerics/unit_tests_prof-petsc_mffd_matrix_test.$(OBJEXT) \ numerics/unit_tests_prof-diagonal_matrix_test.$(OBJEXT) \ numerics/unit_tests_prof-lumped_mass_matrix_test.$(OBJEXT) \ numerics/unit_tests_prof-eigen_sparse_matrix_test.$(OBJEXT) \ @@ -1241,6 +1270,7 @@ am__objects_10 = unit_tests_prof-driver.$(OBJEXT) \ systems/unit_tests_prof-periodic_bc_test.$(OBJEXT) \ systems/unit_tests_prof-disjoint_neighbor_test.$(OBJEXT) \ systems/unit_tests_prof-systems_test.$(OBJEXT) \ + systems/unit_tests_prof-nonlinear_implicit_system_test.$(OBJEXT) \ utils/unit_tests_prof-parameters_test.$(OBJEXT) \ utils/unit_tests_prof-point_locator_test.$(OBJEXT) \ utils/unit_tests_prof-rb_parameters_test.$(OBJEXT) \ @@ -1656,7 +1686,9 @@ am__depfiles_remade = ./$(DEPDIR)/unit_tests_dbg-driver.Po \ numerics/$(DEPDIR)/unit_tests_dbg-lumped_mass_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_dbg-parsed_fem_function_test.Po \ numerics/$(DEPDIR)/unit_tests_dbg-parsed_function_test.Po \ + numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_test.Po \ + numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_dbg-petsc_vector_test.Po \ numerics/$(DEPDIR)/unit_tests_dbg-tensor_traits_test.Po \ numerics/$(DEPDIR)/unit_tests_dbg-trilinos_epetra_vector_test.Po \ @@ -1674,7 +1706,9 @@ am__depfiles_remade = ./$(DEPDIR)/unit_tests_dbg-driver.Po \ numerics/$(DEPDIR)/unit_tests_devel-lumped_mass_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_devel-parsed_fem_function_test.Po \ numerics/$(DEPDIR)/unit_tests_devel-parsed_function_test.Po \ + numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_test.Po \ + numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_devel-petsc_vector_test.Po \ numerics/$(DEPDIR)/unit_tests_devel-tensor_traits_test.Po \ numerics/$(DEPDIR)/unit_tests_devel-trilinos_epetra_vector_test.Po \ @@ -1692,7 +1726,9 @@ am__depfiles_remade = ./$(DEPDIR)/unit_tests_dbg-driver.Po \ numerics/$(DEPDIR)/unit_tests_oprof-lumped_mass_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_oprof-parsed_fem_function_test.Po \ numerics/$(DEPDIR)/unit_tests_oprof-parsed_function_test.Po \ + numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_test.Po \ + numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_oprof-petsc_vector_test.Po \ numerics/$(DEPDIR)/unit_tests_oprof-tensor_traits_test.Po \ numerics/$(DEPDIR)/unit_tests_oprof-trilinos_epetra_vector_test.Po \ @@ -1710,7 +1746,9 @@ am__depfiles_remade = ./$(DEPDIR)/unit_tests_dbg-driver.Po \ numerics/$(DEPDIR)/unit_tests_opt-lumped_mass_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_opt-parsed_fem_function_test.Po \ numerics/$(DEPDIR)/unit_tests_opt-parsed_function_test.Po \ + numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_test.Po \ + numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_opt-petsc_vector_test.Po \ numerics/$(DEPDIR)/unit_tests_opt-tensor_traits_test.Po \ numerics/$(DEPDIR)/unit_tests_opt-trilinos_epetra_vector_test.Po \ @@ -1728,7 +1766,9 @@ am__depfiles_remade = ./$(DEPDIR)/unit_tests_dbg-driver.Po \ numerics/$(DEPDIR)/unit_tests_prof-lumped_mass_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_prof-parsed_fem_function_test.Po \ numerics/$(DEPDIR)/unit_tests_prof-parsed_function_test.Po \ + numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_test.Po \ + numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Po \ numerics/$(DEPDIR)/unit_tests_prof-petsc_vector_test.Po \ numerics/$(DEPDIR)/unit_tests_prof-tensor_traits_test.Po \ numerics/$(DEPDIR)/unit_tests_prof-trilinos_epetra_vector_test.Po \ @@ -1827,26 +1867,31 @@ am__depfiles_remade = ./$(DEPDIR)/unit_tests_dbg-driver.Po \ systems/$(DEPDIR)/unit_tests_dbg-constraint_operator_test.Po \ systems/$(DEPDIR)/unit_tests_dbg-disjoint_neighbor_test.Po \ systems/$(DEPDIR)/unit_tests_dbg-equation_systems_test.Po \ + systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Po \ systems/$(DEPDIR)/unit_tests_dbg-periodic_bc_test.Po \ systems/$(DEPDIR)/unit_tests_dbg-systems_test.Po \ systems/$(DEPDIR)/unit_tests_devel-constraint_operator_test.Po \ systems/$(DEPDIR)/unit_tests_devel-disjoint_neighbor_test.Po \ systems/$(DEPDIR)/unit_tests_devel-equation_systems_test.Po \ + systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Po \ systems/$(DEPDIR)/unit_tests_devel-periodic_bc_test.Po \ systems/$(DEPDIR)/unit_tests_devel-systems_test.Po \ systems/$(DEPDIR)/unit_tests_oprof-constraint_operator_test.Po \ systems/$(DEPDIR)/unit_tests_oprof-disjoint_neighbor_test.Po \ systems/$(DEPDIR)/unit_tests_oprof-equation_systems_test.Po \ + systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Po \ systems/$(DEPDIR)/unit_tests_oprof-periodic_bc_test.Po \ systems/$(DEPDIR)/unit_tests_oprof-systems_test.Po \ systems/$(DEPDIR)/unit_tests_opt-constraint_operator_test.Po \ systems/$(DEPDIR)/unit_tests_opt-disjoint_neighbor_test.Po \ systems/$(DEPDIR)/unit_tests_opt-equation_systems_test.Po \ + systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Po \ systems/$(DEPDIR)/unit_tests_opt-periodic_bc_test.Po \ systems/$(DEPDIR)/unit_tests_opt-systems_test.Po \ systems/$(DEPDIR)/unit_tests_prof-constraint_operator_test.Po \ systems/$(DEPDIR)/unit_tests_prof-disjoint_neighbor_test.Po \ systems/$(DEPDIR)/unit_tests_prof-equation_systems_test.Po \ + systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Po \ systems/$(DEPDIR)/unit_tests_prof-periodic_bc_test.Po \ systems/$(DEPDIR)/unit_tests_prof-systems_test.Po \ utils/$(DEPDIR)/unit_tests_dbg-parameters_test.Po \ @@ -2433,6 +2478,8 @@ unit_tests_sources = driver.C libmesh_cppunit.h stream_redirector.h \ numerics/type_vector_test.h numerics/vector_value_test.C \ numerics/type_tensor_test.C numerics/sparse_matrix_test.h \ numerics/dense_matrix_test.C numerics/petsc_matrix_test.C \ + numerics/petsc_matrix_shell_matrix_test.C \ + numerics/petsc_mffd_matrix_test.C \ numerics/diagonal_matrix_test.C \ numerics/lumped_mass_matrix_test.C \ numerics/eigen_sparse_matrix_test.C \ @@ -2454,6 +2501,7 @@ unit_tests_sources = driver.C libmesh_cppunit.h stream_redirector.h \ systems/constraint_operator_test.C \ systems/equation_systems_test.C systems/periodic_bc_test.C \ systems/disjoint_neighbor_test.C systems/systems_test.C \ + systems/nonlinear_implicit_system_test.C \ utils/parameters_test.C utils/point_locator_test.C \ utils/rb_parameters_test.C utils/transparent_comparator.C \ utils/vectormap_test.C utils/xdr_test.C $(am__append_1) @@ -2910,6 +2958,10 @@ numerics/unit_tests_dbg-dense_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_dbg-petsc_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_dbg-petsc_mffd_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_dbg-diagonal_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_dbg-lumped_mass_matrix_test.$(OBJEXT): \ @@ -3002,6 +3054,8 @@ systems/unit_tests_dbg-disjoint_neighbor_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) systems/unit_tests_dbg-systems_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) +systems/unit_tests_dbg-nonlinear_implicit_system_test.$(OBJEXT): \ + systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) utils/$(am__dirstamp): @$(MKDIR_P) utils @: >>utils/$(am__dirstamp) @@ -3206,6 +3260,10 @@ numerics/unit_tests_devel-dense_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_devel-petsc_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_devel-petsc_mffd_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_devel-diagonal_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_devel-lumped_mass_matrix_test.$(OBJEXT): \ @@ -3268,6 +3326,8 @@ systems/unit_tests_devel-disjoint_neighbor_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) systems/unit_tests_devel-systems_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) +systems/unit_tests_devel-nonlinear_implicit_system_test.$(OBJEXT): \ + systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_devel-parameters_test.$(OBJEXT): \ utils/$(am__dirstamp) utils/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_devel-point_locator_test.$(OBJEXT): \ @@ -3500,6 +3560,10 @@ numerics/unit_tests_oprof-dense_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_oprof-petsc_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_oprof-petsc_mffd_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_oprof-diagonal_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_oprof-lumped_mass_matrix_test.$(OBJEXT): \ @@ -3562,6 +3626,8 @@ systems/unit_tests_oprof-disjoint_neighbor_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) systems/unit_tests_oprof-systems_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) +systems/unit_tests_oprof-nonlinear_implicit_system_test.$(OBJEXT): \ + systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_oprof-parameters_test.$(OBJEXT): \ utils/$(am__dirstamp) utils/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_oprof-point_locator_test.$(OBJEXT): \ @@ -3754,6 +3820,10 @@ numerics/unit_tests_opt-dense_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_opt-petsc_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_opt-petsc_mffd_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_opt-diagonal_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_opt-lumped_mass_matrix_test.$(OBJEXT): \ @@ -3816,6 +3886,8 @@ systems/unit_tests_opt-disjoint_neighbor_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) systems/unit_tests_opt-systems_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) +systems/unit_tests_opt-nonlinear_implicit_system_test.$(OBJEXT): \ + systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_opt-parameters_test.$(OBJEXT): utils/$(am__dirstamp) \ utils/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_opt-point_locator_test.$(OBJEXT): \ @@ -4008,6 +4080,10 @@ numerics/unit_tests_prof-dense_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_prof-petsc_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) +numerics/unit_tests_prof-petsc_mffd_matrix_test.$(OBJEXT): \ + numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_prof-diagonal_matrix_test.$(OBJEXT): \ numerics/$(am__dirstamp) numerics/$(DEPDIR)/$(am__dirstamp) numerics/unit_tests_prof-lumped_mass_matrix_test.$(OBJEXT): \ @@ -4070,6 +4146,8 @@ systems/unit_tests_prof-disjoint_neighbor_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) systems/unit_tests_prof-systems_test.$(OBJEXT): \ systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) +systems/unit_tests_prof-nonlinear_implicit_system_test.$(OBJEXT): \ + systems/$(am__dirstamp) systems/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_prof-parameters_test.$(OBJEXT): \ utils/$(am__dirstamp) utils/$(DEPDIR)/$(am__dirstamp) utils/unit_tests_prof-point_locator_test.$(OBJEXT): \ @@ -4494,7 +4572,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-lumped_mass_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-parsed_fem_function_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-parsed_function_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-petsc_vector_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-tensor_traits_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_dbg-trilinos_epetra_vector_test.Po@am__quote@ # am--include-marker @@ -4512,7 +4592,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-lumped_mass_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-parsed_fem_function_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-parsed_function_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-petsc_vector_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-tensor_traits_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_devel-trilinos_epetra_vector_test.Po@am__quote@ # am--include-marker @@ -4530,7 +4612,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-lumped_mass_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-parsed_fem_function_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-parsed_function_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-petsc_vector_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-tensor_traits_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_oprof-trilinos_epetra_vector_test.Po@am__quote@ # am--include-marker @@ -4548,7 +4632,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-lumped_mass_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-parsed_fem_function_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-parsed_function_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-petsc_vector_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-tensor_traits_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_opt-trilinos_epetra_vector_test.Po@am__quote@ # am--include-marker @@ -4566,7 +4652,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-lumped_mass_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-parsed_fem_function_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-parsed_function_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-petsc_vector_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-tensor_traits_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@numerics/$(DEPDIR)/unit_tests_prof-trilinos_epetra_vector_test.Po@am__quote@ # am--include-marker @@ -4665,26 +4753,31 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_dbg-constraint_operator_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_dbg-disjoint_neighbor_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_dbg-equation_systems_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_dbg-periodic_bc_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_dbg-systems_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_devel-constraint_operator_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_devel-disjoint_neighbor_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_devel-equation_systems_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_devel-periodic_bc_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_devel-systems_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_oprof-constraint_operator_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_oprof-disjoint_neighbor_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_oprof-equation_systems_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_oprof-periodic_bc_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_oprof-systems_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_opt-constraint_operator_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_opt-disjoint_neighbor_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_opt-equation_systems_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_opt-periodic_bc_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_opt-systems_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_prof-constraint_operator_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_prof-disjoint_neighbor_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_prof-equation_systems_test.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_prof-periodic_bc_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@systems/$(DEPDIR)/unit_tests_prof-systems_test.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@utils/$(DEPDIR)/unit_tests_dbg-parameters_test.Po@am__quote@ # am--include-marker @@ -5980,6 +6073,34 @@ numerics/unit_tests_dbg-petsc_matrix_test.obj: numerics/petsc_matrix_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_dbg-petsc_matrix_test.obj `if test -f 'numerics/petsc_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_test.C'; fi` +numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.o: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C + +numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.obj: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_dbg-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` + +numerics/unit_tests_dbg-petsc_mffd_matrix_test.o: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_dbg-petsc_mffd_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_dbg-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_dbg-petsc_mffd_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_dbg-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C + +numerics/unit_tests_dbg-petsc_mffd_matrix_test.obj: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_dbg-petsc_mffd_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_dbg-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_dbg-petsc_mffd_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_dbg-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` + numerics/unit_tests_dbg-diagonal_matrix_test.o: numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_dbg-diagonal_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_dbg-diagonal_matrix_test.Tpo -c -o numerics/unit_tests_dbg-diagonal_matrix_test.o `test -f 'numerics/diagonal_matrix_test.C' || echo '$(srcdir)/'`numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_dbg-diagonal_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_dbg-diagonal_matrix_test.Po @@ -6358,6 +6479,20 @@ systems/unit_tests_dbg-systems_test.obj: systems/systems_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_dbg-systems_test.obj `if test -f 'systems/systems_test.C'; then $(CYGPATH_W) 'systems/systems_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/systems_test.C'; fi` +systems/unit_tests_dbg-nonlinear_implicit_system_test.o: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_dbg-nonlinear_implicit_system_test.o -MD -MP -MF systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_dbg-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_dbg-nonlinear_implicit_system_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_dbg-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C + +systems/unit_tests_dbg-nonlinear_implicit_system_test.obj: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_dbg-nonlinear_implicit_system_test.obj -MD -MP -MF systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_dbg-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_dbg-nonlinear_implicit_system_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_dbg-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` + utils/unit_tests_dbg-parameters_test.o: utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_dbg_CPPFLAGS) $(CPPFLAGS) $(unit_tests_dbg_CXXFLAGS) $(CXXFLAGS) -MT utils/unit_tests_dbg-parameters_test.o -MD -MP -MF utils/$(DEPDIR)/unit_tests_dbg-parameters_test.Tpo -c -o utils/unit_tests_dbg-parameters_test.o `test -f 'utils/parameters_test.C' || echo '$(srcdir)/'`utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) utils/$(DEPDIR)/unit_tests_dbg-parameters_test.Tpo utils/$(DEPDIR)/unit_tests_dbg-parameters_test.Po @@ -7688,6 +7823,34 @@ numerics/unit_tests_devel-petsc_matrix_test.obj: numerics/petsc_matrix_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_devel-petsc_matrix_test.obj `if test -f 'numerics/petsc_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_test.C'; fi` +numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.o: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C + +numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.obj: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_devel-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` + +numerics/unit_tests_devel-petsc_mffd_matrix_test.o: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_devel-petsc_mffd_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_devel-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_devel-petsc_mffd_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_devel-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C + +numerics/unit_tests_devel-petsc_mffd_matrix_test.obj: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_devel-petsc_mffd_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_devel-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_devel-petsc_mffd_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_devel-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` + numerics/unit_tests_devel-diagonal_matrix_test.o: numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_devel-diagonal_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_devel-diagonal_matrix_test.Tpo -c -o numerics/unit_tests_devel-diagonal_matrix_test.o `test -f 'numerics/diagonal_matrix_test.C' || echo '$(srcdir)/'`numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_devel-diagonal_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_devel-diagonal_matrix_test.Po @@ -8066,6 +8229,20 @@ systems/unit_tests_devel-systems_test.obj: systems/systems_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_devel-systems_test.obj `if test -f 'systems/systems_test.C'; then $(CYGPATH_W) 'systems/systems_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/systems_test.C'; fi` +systems/unit_tests_devel-nonlinear_implicit_system_test.o: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_devel-nonlinear_implicit_system_test.o -MD -MP -MF systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_devel-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_devel-nonlinear_implicit_system_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_devel-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C + +systems/unit_tests_devel-nonlinear_implicit_system_test.obj: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_devel-nonlinear_implicit_system_test.obj -MD -MP -MF systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_devel-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_devel-nonlinear_implicit_system_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_devel-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` + utils/unit_tests_devel-parameters_test.o: utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_devel_CPPFLAGS) $(CPPFLAGS) $(unit_tests_devel_CXXFLAGS) $(CXXFLAGS) -MT utils/unit_tests_devel-parameters_test.o -MD -MP -MF utils/$(DEPDIR)/unit_tests_devel-parameters_test.Tpo -c -o utils/unit_tests_devel-parameters_test.o `test -f 'utils/parameters_test.C' || echo '$(srcdir)/'`utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) utils/$(DEPDIR)/unit_tests_devel-parameters_test.Tpo utils/$(DEPDIR)/unit_tests_devel-parameters_test.Po @@ -9396,6 +9573,34 @@ numerics/unit_tests_oprof-petsc_matrix_test.obj: numerics/petsc_matrix_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_oprof-petsc_matrix_test.obj `if test -f 'numerics/petsc_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_test.C'; fi` +numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.o: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C + +numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.obj: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_oprof-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` + +numerics/unit_tests_oprof-petsc_mffd_matrix_test.o: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_oprof-petsc_mffd_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_oprof-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_oprof-petsc_mffd_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_oprof-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C + +numerics/unit_tests_oprof-petsc_mffd_matrix_test.obj: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_oprof-petsc_mffd_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_oprof-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_oprof-petsc_mffd_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_oprof-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` + numerics/unit_tests_oprof-diagonal_matrix_test.o: numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_oprof-diagonal_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_oprof-diagonal_matrix_test.Tpo -c -o numerics/unit_tests_oprof-diagonal_matrix_test.o `test -f 'numerics/diagonal_matrix_test.C' || echo '$(srcdir)/'`numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_oprof-diagonal_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_oprof-diagonal_matrix_test.Po @@ -9774,6 +9979,20 @@ systems/unit_tests_oprof-systems_test.obj: systems/systems_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_oprof-systems_test.obj `if test -f 'systems/systems_test.C'; then $(CYGPATH_W) 'systems/systems_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/systems_test.C'; fi` +systems/unit_tests_oprof-nonlinear_implicit_system_test.o: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_oprof-nonlinear_implicit_system_test.o -MD -MP -MF systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_oprof-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_oprof-nonlinear_implicit_system_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_oprof-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C + +systems/unit_tests_oprof-nonlinear_implicit_system_test.obj: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_oprof-nonlinear_implicit_system_test.obj -MD -MP -MF systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_oprof-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_oprof-nonlinear_implicit_system_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_oprof-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` + utils/unit_tests_oprof-parameters_test.o: utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_oprof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_oprof_CXXFLAGS) $(CXXFLAGS) -MT utils/unit_tests_oprof-parameters_test.o -MD -MP -MF utils/$(DEPDIR)/unit_tests_oprof-parameters_test.Tpo -c -o utils/unit_tests_oprof-parameters_test.o `test -f 'utils/parameters_test.C' || echo '$(srcdir)/'`utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) utils/$(DEPDIR)/unit_tests_oprof-parameters_test.Tpo utils/$(DEPDIR)/unit_tests_oprof-parameters_test.Po @@ -11104,6 +11323,34 @@ numerics/unit_tests_opt-petsc_matrix_test.obj: numerics/petsc_matrix_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_opt-petsc_matrix_test.obj `if test -f 'numerics/petsc_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_test.C'; fi` +numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.o: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C + +numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.obj: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_opt-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` + +numerics/unit_tests_opt-petsc_mffd_matrix_test.o: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_opt-petsc_mffd_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_opt-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_opt-petsc_mffd_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_opt-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C + +numerics/unit_tests_opt-petsc_mffd_matrix_test.obj: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_opt-petsc_mffd_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_opt-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_opt-petsc_mffd_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_opt-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` + numerics/unit_tests_opt-diagonal_matrix_test.o: numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_opt-diagonal_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_opt-diagonal_matrix_test.Tpo -c -o numerics/unit_tests_opt-diagonal_matrix_test.o `test -f 'numerics/diagonal_matrix_test.C' || echo '$(srcdir)/'`numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_opt-diagonal_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_opt-diagonal_matrix_test.Po @@ -11482,6 +11729,20 @@ systems/unit_tests_opt-systems_test.obj: systems/systems_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_opt-systems_test.obj `if test -f 'systems/systems_test.C'; then $(CYGPATH_W) 'systems/systems_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/systems_test.C'; fi` +systems/unit_tests_opt-nonlinear_implicit_system_test.o: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_opt-nonlinear_implicit_system_test.o -MD -MP -MF systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_opt-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_opt-nonlinear_implicit_system_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_opt-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C + +systems/unit_tests_opt-nonlinear_implicit_system_test.obj: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_opt-nonlinear_implicit_system_test.obj -MD -MP -MF systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_opt-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_opt-nonlinear_implicit_system_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_opt-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` + utils/unit_tests_opt-parameters_test.o: utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_opt_CPPFLAGS) $(CPPFLAGS) $(unit_tests_opt_CXXFLAGS) $(CXXFLAGS) -MT utils/unit_tests_opt-parameters_test.o -MD -MP -MF utils/$(DEPDIR)/unit_tests_opt-parameters_test.Tpo -c -o utils/unit_tests_opt-parameters_test.o `test -f 'utils/parameters_test.C' || echo '$(srcdir)/'`utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) utils/$(DEPDIR)/unit_tests_opt-parameters_test.Tpo utils/$(DEPDIR)/unit_tests_opt-parameters_test.Po @@ -12812,6 +13073,34 @@ numerics/unit_tests_prof-petsc_matrix_test.obj: numerics/petsc_matrix_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_prof-petsc_matrix_test.obj `if test -f 'numerics/petsc_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_test.C'; fi` +numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.o: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.o `test -f 'numerics/petsc_matrix_shell_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_matrix_shell_matrix_test.C + +numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.obj: numerics/petsc_matrix_shell_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Tpo -c -o numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_matrix_shell_matrix_test.C' object='numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_prof-petsc_matrix_shell_matrix_test.obj `if test -f 'numerics/petsc_matrix_shell_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_matrix_shell_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_matrix_shell_matrix_test.C'; fi` + +numerics/unit_tests_prof-petsc_mffd_matrix_test.o: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_prof-petsc_mffd_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_prof-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_prof-petsc_mffd_matrix_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_prof-petsc_mffd_matrix_test.o `test -f 'numerics/petsc_mffd_matrix_test.C' || echo '$(srcdir)/'`numerics/petsc_mffd_matrix_test.C + +numerics/unit_tests_prof-petsc_mffd_matrix_test.obj: numerics/petsc_mffd_matrix_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_prof-petsc_mffd_matrix_test.obj -MD -MP -MF numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Tpo -c -o numerics/unit_tests_prof-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='numerics/petsc_mffd_matrix_test.C' object='numerics/unit_tests_prof-petsc_mffd_matrix_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o numerics/unit_tests_prof-petsc_mffd_matrix_test.obj `if test -f 'numerics/petsc_mffd_matrix_test.C'; then $(CYGPATH_W) 'numerics/petsc_mffd_matrix_test.C'; else $(CYGPATH_W) '$(srcdir)/numerics/petsc_mffd_matrix_test.C'; fi` + numerics/unit_tests_prof-diagonal_matrix_test.o: numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT numerics/unit_tests_prof-diagonal_matrix_test.o -MD -MP -MF numerics/$(DEPDIR)/unit_tests_prof-diagonal_matrix_test.Tpo -c -o numerics/unit_tests_prof-diagonal_matrix_test.o `test -f 'numerics/diagonal_matrix_test.C' || echo '$(srcdir)/'`numerics/diagonal_matrix_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) numerics/$(DEPDIR)/unit_tests_prof-diagonal_matrix_test.Tpo numerics/$(DEPDIR)/unit_tests_prof-diagonal_matrix_test.Po @@ -13190,6 +13479,20 @@ systems/unit_tests_prof-systems_test.obj: systems/systems_test.C @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_prof-systems_test.obj `if test -f 'systems/systems_test.C'; then $(CYGPATH_W) 'systems/systems_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/systems_test.C'; fi` +systems/unit_tests_prof-nonlinear_implicit_system_test.o: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_prof-nonlinear_implicit_system_test.o -MD -MP -MF systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_prof-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_prof-nonlinear_implicit_system_test.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_prof-nonlinear_implicit_system_test.o `test -f 'systems/nonlinear_implicit_system_test.C' || echo '$(srcdir)/'`systems/nonlinear_implicit_system_test.C + +systems/unit_tests_prof-nonlinear_implicit_system_test.obj: systems/nonlinear_implicit_system_test.C +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT systems/unit_tests_prof-nonlinear_implicit_system_test.obj -MD -MP -MF systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Tpo -c -o systems/unit_tests_prof-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Tpo systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='systems/nonlinear_implicit_system_test.C' object='systems/unit_tests_prof-nonlinear_implicit_system_test.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -c -o systems/unit_tests_prof-nonlinear_implicit_system_test.obj `if test -f 'systems/nonlinear_implicit_system_test.C'; then $(CYGPATH_W) 'systems/nonlinear_implicit_system_test.C'; else $(CYGPATH_W) '$(srcdir)/systems/nonlinear_implicit_system_test.C'; fi` + utils/unit_tests_prof-parameters_test.o: utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(unit_tests_prof_CPPFLAGS) $(CPPFLAGS) $(unit_tests_prof_CXXFLAGS) $(CXXFLAGS) -MT utils/unit_tests_prof-parameters_test.o -MD -MP -MF utils/$(DEPDIR)/unit_tests_prof-parameters_test.Tpo -c -o utils/unit_tests_prof-parameters_test.o `test -f 'utils/parameters_test.C' || echo '$(srcdir)/'`utils/parameters_test.C @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) utils/$(DEPDIR)/unit_tests_prof-parameters_test.Tpo utils/$(DEPDIR)/unit_tests_prof-parameters_test.Po @@ -14038,7 +14341,9 @@ distclean: distclean-am -rm -f numerics/$(DEPDIR)/unit_tests_dbg-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-trilinos_epetra_vector_test.Po @@ -14056,7 +14361,9 @@ distclean: distclean-am -rm -f numerics/$(DEPDIR)/unit_tests_devel-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-trilinos_epetra_vector_test.Po @@ -14074,7 +14381,9 @@ distclean: distclean-am -rm -f numerics/$(DEPDIR)/unit_tests_oprof-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-trilinos_epetra_vector_test.Po @@ -14092,7 +14401,9 @@ distclean: distclean-am -rm -f numerics/$(DEPDIR)/unit_tests_opt-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-trilinos_epetra_vector_test.Po @@ -14110,7 +14421,9 @@ distclean: distclean-am -rm -f numerics/$(DEPDIR)/unit_tests_prof-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-trilinos_epetra_vector_test.Po @@ -14209,26 +14522,31 @@ distclean: distclean-am -rm -f systems/$(DEPDIR)/unit_tests_dbg-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-systems_test.Po -rm -f utils/$(DEPDIR)/unit_tests_dbg-parameters_test.Po @@ -14695,7 +15013,9 @@ maintainer-clean: maintainer-clean-am -rm -f numerics/$(DEPDIR)/unit_tests_dbg-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_dbg-trilinos_epetra_vector_test.Po @@ -14713,7 +15033,9 @@ maintainer-clean: maintainer-clean-am -rm -f numerics/$(DEPDIR)/unit_tests_devel-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_devel-trilinos_epetra_vector_test.Po @@ -14731,7 +15053,9 @@ maintainer-clean: maintainer-clean-am -rm -f numerics/$(DEPDIR)/unit_tests_oprof-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_oprof-trilinos_epetra_vector_test.Po @@ -14749,7 +15073,9 @@ maintainer-clean: maintainer-clean-am -rm -f numerics/$(DEPDIR)/unit_tests_opt-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_opt-trilinos_epetra_vector_test.Po @@ -14767,7 +15093,9 @@ maintainer-clean: maintainer-clean-am -rm -f numerics/$(DEPDIR)/unit_tests_prof-lumped_mass_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-parsed_fem_function_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-parsed_function_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_shell_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_matrix_test.Po + -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_mffd_matrix_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-petsc_vector_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-tensor_traits_test.Po -rm -f numerics/$(DEPDIR)/unit_tests_prof-trilinos_epetra_vector_test.Po @@ -14866,26 +15194,31 @@ maintainer-clean: maintainer-clean-am -rm -f systems/$(DEPDIR)/unit_tests_dbg-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_dbg-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_dbg-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_devel-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_devel-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_oprof-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_oprof-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_opt-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_opt-systems_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-constraint_operator_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-disjoint_neighbor_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-equation_systems_test.Po + -rm -f systems/$(DEPDIR)/unit_tests_prof-nonlinear_implicit_system_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-periodic_bc_test.Po -rm -f systems/$(DEPDIR)/unit_tests_prof-systems_test.Po -rm -f utils/$(DEPDIR)/unit_tests_dbg-parameters_test.Po diff --git a/tests/numerics/petsc_matrix_shell_matrix_test.C b/tests/numerics/petsc_matrix_shell_matrix_test.C new file mode 100644 index 00000000000..70a435f10f7 --- /dev/null +++ b/tests/numerics/petsc_matrix_shell_matrix_test.C @@ -0,0 +1,116 @@ +// The libMesh Finite Element Library. +// Copyright (C) 2002-2026 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 + +#include + +#ifdef LIBMESH_HAVE_PETSC + +#include +#include + +#include "test_comm.h" +#include "libmesh_cppunit.h" + +using namespace libMesh; + +namespace +{ +// A trivial MATOP_MULT: y = 2*x. Just enough to prove a PetscMatrixShellMatrix +// is a genuinely usable MatMult operand, e.g. as a matrix-free SNES Jacobian. +PetscErrorCode +petsc_matrix_shell_matrix_test_mult(Mat, Vec x, Vec y) +{ + PetscFunctionBeginUser; + LibmeshPetscCallQ(VecCopy(x, y)); + LibmeshPetscCallQ(VecScale(y, 2.)); + PetscFunctionReturn(LIBMESH_PETSC_SUCCESS); +} +} + +class PetscMatrixShellMatrixTest : public CppUnit::TestCase +{ +public: + LIBMESH_CPPUNIT_TEST_SUITE(PetscMatrixShellMatrixTest); + + CPPUNIT_TEST(testInitSizes); + CPPUNIT_TEST(testGetContext); + CPPUNIT_TEST(testMult); + + CPPUNIT_TEST_SUITE_END(); + +public: + + void setUp() {} + void tearDown() {} + + void testInitSizes() + { + LOG_UNIT_TEST; + + PetscMatrixShellMatrix mat(*TestCommWorld); + const numeric_index_type m = TestCommWorld->size(); + mat.init(m, m, /*m_l=*/1, /*n_l=*/1); + + CPPUNIT_ASSERT_EQUAL(mat.m(), m); + CPPUNIT_ASSERT_EQUAL(mat.n(), m); + CPPUNIT_ASSERT_EQUAL(mat.local_m(), numeric_index_type(1)); + CPPUNIT_ASSERT_EQUAL(mat.local_n(), numeric_index_type(1)); + + MatType type; + LibmeshPetscCall2((*TestCommWorld), MatGetType(mat.mat(), &type)); + CPPUNIT_ASSERT(std::string(type) == MATSHELL); + } + + void testGetContext() + { + LOG_UNIT_TEST; + + PetscMatrixShellMatrix mat(*TestCommWorld); + const numeric_index_type m = TestCommWorld->size(); + mat.init(m, m, 1, 1); + + // init() composes libmesh's own context onto the shell Mat, letting + // get_context() recover the wrapping object later given only the raw Mat. + CPPUNIT_ASSERT(PetscMatrixBase::get_context(mat.mat(), *TestCommWorld) == &mat); + } + + void testMult() + { + LOG_UNIT_TEST; + + PetscMatrixShellMatrix mat(*TestCommWorld); + const numeric_index_type m = TestCommWorld->size(); + mat.init(m, m, 1, 1); + + LibmeshPetscCall2((*TestCommWorld), + MatShellSetOperation(mat.mat(), MATOP_MULT, + (void (*)(void))petsc_matrix_shell_matrix_test_mult)); + + PetscVector x(*TestCommWorld, m, 1); + PetscVector y(*TestCommWorld, m, 1); + x.set(TestCommWorld->rank(), 3.); + x.close(); + + LibmeshPetscCall2((*TestCommWorld), MatMult(mat.mat(), x.vec(), y.vec())); + + LIBMESH_ASSERT_NUMBERS_EQUAL(Number(6.), y(TestCommWorld->rank()), TOLERANCE); + } +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(PetscMatrixShellMatrixTest); + +#endif // LIBMESH_HAVE_PETSC diff --git a/tests/numerics/petsc_mffd_matrix_test.C b/tests/numerics/petsc_mffd_matrix_test.C new file mode 100644 index 00000000000..7c02a2739a8 --- /dev/null +++ b/tests/numerics/petsc_mffd_matrix_test.C @@ -0,0 +1,83 @@ +// The libMesh Finite Element Library. +// Copyright (C) 2002-2026 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 + +#include + +#ifdef LIBMESH_HAVE_PETSC + +#include +#include + +#include "test_comm.h" +#include "libmesh_cppunit.h" + +using namespace libMesh; + +class PetscMFFDMatrixTest : public CppUnit::TestCase +{ +public: + LIBMESH_CPPUNIT_TEST_SUITE(PetscMFFDMatrixTest); + + CPPUNIT_TEST(testAssignWithContext); + CPPUNIT_TEST(testAssignWithoutContext); + + CPPUNIT_TEST_SUITE_END(); + +public: + + void setUp() {} + void tearDown() {} + + void testAssignWithContext() + { + LOG_UNIT_TEST; + + // A real, owned Mat for the wrapper to adopt. init() attaches its own + // context (pointing at owner) as a side effect. + PetscMatrixShellMatrix owner(*TestCommWorld); + owner.init(TestCommWorld->size(), TestCommWorld->size(), 1, 1); + + PetscMFFDMatrix mffd(*TestCommWorld); + mffd.assign(owner.mat(), /*set_context=*/true); + + CPPUNIT_ASSERT(mffd.mat() == owner.mat()); + CPPUNIT_ASSERT(PetscMatrixBase::get_context(owner.mat(), *TestCommWorld) == &mffd); + } + + void testAssignWithoutContext() + { + LOG_UNIT_TEST; + + PetscMatrixShellMatrix owner(*TestCommWorld); + owner.init(TestCommWorld->size(), TestCommWorld->size(), 1, 1); + + { + PetscMFFDMatrix mffd(*TestCommWorld); + mffd.assign(owner.mat(), /*set_context=*/false); + CPPUNIT_ASSERT(mffd.mat() == owner.mat()); + } + + // mffd is now destroyed. Since assign() above didn't attach a context, + // owner's own context (set by its own init()) must still be intact -- + // this is the dangling-context scenario set_context=false exists to avoid. + CPPUNIT_ASSERT(PetscMatrixBase::get_context(owner.mat(), *TestCommWorld) == &owner); + } +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(PetscMFFDMatrixTest); + +#endif // LIBMESH_HAVE_PETSC diff --git a/tests/systems/nonlinear_implicit_system_test.C b/tests/systems/nonlinear_implicit_system_test.C new file mode 100644 index 00000000000..df4e364f0d8 --- /dev/null +++ b/tests/systems/nonlinear_implicit_system_test.C @@ -0,0 +1,200 @@ +// The libMesh Finite Element Library. +// Copyright (C) 2002-2026 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 + +#include + +// NonlinearSolver::build() only has a working implementation when built +// against one of these packages; without either, constructing a +// NonlinearImplicitSystem throws unconditionally. +#if defined(LIBMESH_HAVE_PETSC) || defined(LIBMESH_TRILINOS_HAVE_NOX) + +#include +#include +#include +#include +#include +#include +#include + +#include "test_comm.h" +#include "libmesh_cppunit.h" + +using namespace libMesh; + +namespace +{ +// Only overrides the single-matrix solve(), like a backend that doesn't +// distinguish the Jacobian operator matrix from the preconditioning matrix, +// relying on NonlinearSolver's own default two-matrix forwarding. +class SingleMatrixNonlinearSolver : public NonlinearSolver +{ +public: + explicit SingleMatrixNonlinearSolver(NonlinearImplicitSystem & s) : NonlinearSolver(s) {} + + // Un-hide the base class's two-matrix solve() overload, which we don't + // override here since it's exactly the default forwarding behavior we're + // testing. + using NonlinearSolver::solve; + + virtual void init(const char * = nullptr) override {} + + virtual std::pair + solve(SparseMatrix & jac_in, + NumericVector &, + NumericVector &, + const double, + const unsigned int) override + { + solved_with = &jac_in; + ++single_matrix_calls; + return {0, 0.}; + } + + virtual int get_total_linear_iterations() override { return 0; } + virtual unsigned get_current_nonlinear_iteration_number() const override { return 0; } + + SparseMatrix * solved_with = nullptr; + unsigned int single_matrix_calls = 0; +}; + +// Also records which matrix(es) NonlinearImplicitSystem::solve() actually +// passes down to the NonlinearSolver, without performing any real solve. On +// top of the inherited single-matrix override, this overrides the +// two-matrix solve() overload too, like a backend that distinguishes the +// Jacobian operator matrix from the preconditioning matrix. +class TwoMatrixNonlinearSolver : public SingleMatrixNonlinearSolver +{ +public: + explicit TwoMatrixNonlinearSolver(NonlinearImplicitSystem & s) : SingleMatrixNonlinearSolver(s) {} + + // Un-hide the inherited single-matrix override alongside our own + // two-matrix override below. + using SingleMatrixNonlinearSolver::solve; + + virtual std::pair + solve(SparseMatrix & jac_in, + SparseMatrix & pre_in, + NumericVector &, + NumericVector &, + const double, + const unsigned int) override + { + solved_with = &jac_in; + solved_with_pre = &pre_in; + ++two_matrix_calls; + return {0, 0.}; + } + + SparseMatrix * solved_with_pre = nullptr; + unsigned int two_matrix_calls = 0; +}; +} + +class NonlinearImplicitSystemOperatorMatrixTest : public CppUnit::TestCase +{ +public: + LIBMESH_CPPUNIT_TEST_SUITE(NonlinearImplicitSystemOperatorMatrixTest); + + CPPUNIT_TEST(testDefaultUsesSingleMatrixSolve); + CPPUNIT_TEST(testOperatorMatrixUsesTwoMatrixSolve); + CPPUNIT_TEST(testTwoMatrixSolveWithoutOverrideThrows); + + CPPUNIT_TEST_SUITE_END(); + +public: + + std::unique_ptr mesh; + std::unique_ptr es; + NonlinearImplicitSystem * sys = nullptr; + + void setUp() + { + mesh = std::make_unique(*TestCommWorld); + MeshTools::Generation::build_point(*mesh); + es = std::make_unique(*mesh); + sys = &es->add_system("test"); + es->init(); + } + + void tearDown() + { + sys = nullptr; + es.reset(); + mesh.reset(); + } + + // Without an operator matrix registered, solve() should use the ordinary + // single-matrix path with the system's own preconditioning matrix. + void testDefaultUsesSingleMatrixSolve() + { + LOG_UNIT_TEST; + + auto solver = std::make_unique(*sys); + auto * solver_ptr = solver.get(); + sys->nonlinear_solver = std::move(solver); + + sys->solve(); + + CPPUNIT_ASSERT(solver_ptr->solved_with == sys->matrix); + CPPUNIT_ASSERT_EQUAL(solver_ptr->single_matrix_calls, 1u); + CPPUNIT_ASSERT_EQUAL(solver_ptr->two_matrix_calls, 0u); + } + + // set_operator_matrix() should make solve() use the two-matrix path, with + // the registered matrix as the Jacobian operator and the system's own + // matrix as the preconditioning matrix. + void testOperatorMatrixUsesTwoMatrixSolve() + { + LOG_UNIT_TEST; + + auto amat = SparseMatrix::build(*TestCommWorld); + sys->set_operator_matrix(amat.get()); + + auto solver = std::make_unique(*sys); + auto * solver_ptr = solver.get(); + sys->nonlinear_solver = std::move(solver); + + sys->solve(); + + CPPUNIT_ASSERT(solver_ptr->solved_with == amat.get()); + CPPUNIT_ASSERT(solver_ptr->solved_with_pre == sys->matrix); + CPPUNIT_ASSERT_EQUAL(solver_ptr->two_matrix_calls, 1u); + CPPUNIT_ASSERT_EQUAL(solver_ptr->single_matrix_calls, 0u); + } + + // NonlinearSolver's own two-matrix solve() overload has no fallback + // implementation -- a backend (like this test's mock) that doesn't + // override it can't honor a distinct Jacobian operator matrix, so it must + // refuse rather than silently solving with the preconditioning matrix + // instead of the one the caller explicitly asked to use. + void testTwoMatrixSolveWithoutOverrideThrows() + { + LOG_UNIT_TEST; + + auto amat = SparseMatrix::build(*TestCommWorld); + sys->set_operator_matrix(amat.get()); + + auto solver = std::make_unique(*sys); + sys->nonlinear_solver = std::move(solver); + + CPPUNIT_ASSERT_THROW(sys->solve(), libMesh::NotImplemented); + } +}; + +CPPUNIT_TEST_SUITE_REGISTRATION(NonlinearImplicitSystemOperatorMatrixTest); + +#endif // LIBMESH_HAVE_PETSC || LIBMESH_TRILINOS_HAVE_NOX