@@ -501,7 +501,12 @@ void ioProgram( const struct input &data_in, bool &success ) {
501501 } else {
502502 // read from files if provided
503503 read_matrix_data<NonzeroT>( data_in.filename_Jmatrix , Jdata, data_in.direct );
504- read_vector_data<JType>( data_in.filename_h , h );
504+ if ( std::strlen ( data_in.filename_h ) > 0 ) {
505+ read_vector_data<JType>( data_in.filename_h , h );
506+ }else {
507+ h.resize ( n );
508+ std::fill ( h.begin (), h.end (), static_cast < JType >( 0 ) );
509+ }
505510 if ( data_in.verify ) {
506511 if ( std::strlen (data_in.filename_ref_solution ) == 0 ) {
507512 std::cerr << " Reference solution file not provided for verification\n " ;
@@ -780,7 +785,7 @@ void printhelp( char *progname ) {
780785 << " Options:\n "
781786 << " --use-default-data Use embedded default test data\n "
782787 << " --j-matrix-fname STR Path to J matrix file (matrix-market or supported)\n "
783- << " --h-fname STR Path to h (local fields) vector (whitespace separated)\n "
788+ << " --h-fname STR Path to h (local fields) vector (whitespace separated), if not provided assume zero \n "
784789 << " --n-replicas INT Number of replicas (default: 3)\n "
785790 << " --nsweeps INT Number of sweeps (default: 2)\n "
786791 << " --use-pt BOOL Use Parallel Tampering (default: 1)\n "
@@ -843,9 +848,8 @@ bool parse_arguments( input &in, int argc, char ** argv ) {
843848
844849 // basic validation
845850 if ( !in.use_default_data ) {
846- if ( std::strlen ( in.filename_Jmatrix ) == 0
847- || std::strlen ( in.filename_h ) == 0 ) {
848- std::cerr << " Either --use-default-data or both --j-matrix-fname and --h-fname must be provided\n " ;
851+ if ( std::strlen ( in.filename_Jmatrix ) == 0 ) {
852+ std::cerr << " Either --use-default-data or --j-matrix-fname must be provided\n " ;
849853 return false ;
850854 }
851855 }
0 commit comments