PACKAGE_NAME=Thyra

#
# Main Thyra tests
#

(FRAMEWORK, INSTALL) {
    TESTS = ../example/operator_vector/sillyCgSolve_mpi.exe;
    COMM = MPI,SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = operator_vector/test_std_ops.exe;
    ARGS = --verbose;
    COMM = MPI,SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = ../example/operator_vector/sillyPowerMethod_serial.exe;
    ARGS = --verbose;
    COMM = SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = ../example/operator_vector/sillyCgSolve_serial.exe;
    ARGS =  --use-silly-cg,  --use-sillier-cg;
    COMM = SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = operator_vector/test_product_space.exe,
            operator_vector/test_block_op.exe,
    ARGS = --verbose;
    COMM = MPI, SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = operator_vector/test_handles.exe,
            operator_vector/test_linear_combination.exe;
    ARGS = --verbose;
    COMM = MPI(1), SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = operator_vector/test_scalar_product.exe,
    ARGS = --verbose;
    X-HOST = paunchy;
    COMM = SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = ../example/operator_solve/silly1DFFT_serial.exe;
    ARGS = --verbose;
    X-HOST = paunchy, stratus0;
    COMM = SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = operator_vector/test_composite_linear_ops.exe;
    ARGS = --use-serial --verbose;
    COMM = SERIAL;
}

(FRAMEWORK, INSTALL) {
    TESTS = ./operator_vector/test_composite_linear_ops.exe;
    ARGS = --use-spmd --verbose;
    COMM = MPI,SERIAL;
}

(FRAMEWORK, INSTALL, THYRALOWS) {
    TESTS = ./operator_solve/test_linear_op_with_solve.exe;
    ARGS = --n=1, --n=2;
    COMM = MPI(1), SERIAL;
}

(FRAMEWORK, INSTALL, THYRALOWS) {
    TESTS = ./operator_solve/test_linear_op_with_solve.exe;
    ARGS = --n=4;
    COMM = MPI(1), SERIAL;
    X-HOST = s858352.srn.sandia.gov, s903186.sandia.gov;
}


(FRAMEWORK, INSTALL) {
    TESTS = ../example/operator_vector/sillyCgSolve_serial.exe;
    ARGS = --unsym-op --diag-scale=1.05;
    COMM = SERIAL;
}


(FRAMEWORK, INSTALL) {
    TESTS = ../example/operator_vector/exampleImplicitlyComposedLinearOperators.exe;
    ARGS = --verb-level="VERB_MEDIUM", --verb-level="VERB_EXTREME";
    COMM = SERIAL;
}

(DOCUMENTATION) {
    TESTS = ../example/generate-sample-output.pl;
    COMM = SERIAL;
}


#
# Tests for Epetra/Thyra adapters
#

(FRAMEWORK,INSTALL,EpetraThyra) {
    TESTS = ../adapters/epetra/example/sillyCgSolve_epetra.exe,
            ../adapters/epetra/example/sillyPowerMethod_epetra.exe;
    ARGS = --verbose;
    COMM = SERIAL, MPI;
}

(FRAMEWORK,INSTALL,EpetraThyra) {
    TESTS = ../adapters/epetra/test/test_epetra_adapters.exe;
    ARGS = --verbose;
    COMM = SERIAL, MPI;
}

(DOCUMENTATION) {
    TESTS = ../adapters/epetra/example/generate-sample-output.pl;
    COMM = SERIAL;
}


#
# Tests for Tpetra/Thyra adapters
#

(FRAMEWORK,INSTALL,TpetraThyra) {
    TESTS = ../adapters/tpetra/example/sillyPowerMethod_tpetra.exe;
    ARGS = --verbose;
    COMM = SERIAL, MPI;
}


#
# Tests for EpetraExt/Thyra adapters
#

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --max-iters=6, --max-iters=6 --x-scale=2.0 --f-scale=3.0;
  COMM = SERIAL;
}

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --external-lowsf --max-iters=6;
  COMM = SERIAL;
}

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --tol=1e-12 --max-iters=7;
  COMM = SERIAL;
}

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --x00=-100 --tol=1e-12 --max-iters=12;
  COMM = SERIAL;
}

# In this example the Jacobian is singular at the solution
(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --d=1.0 --p0=0.75 --p1=0.75 --tol=1e-8 --max-iters=21;
  COMM = SERIAL;
}

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --use-4D-opt --max-iters=6;
  COMM = SERIAL;
}

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --use-4D-opt --tol=1e-12 --max-iters=7;
  COMM = SERIAL;
}

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --use-4D-opt --x00=-100 --tol=1e-12 --max-iters=12;
  COMM = SERIAL;
}

(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --external-lowsf --use-4D-opt --x00=-100 --tol=1e-12 --max-iters=12;
  COMM = SERIAL;
}

# In this example the Jacobian is singular at the solution
(FRAMEWORK, INSTALL, EpetraExtThyra) {
  TESTS = ../adapters/epetraext/example/model_evaluator/ForwardSolveEpetraModelEval2DSim.exe;
  ARGS = --use-4D-opt --d=1.0 --p0=0.75 --p1=0.75 --tol=1e-8 --max-iters=21;
  COMM = SERIAL;
}
