void FIDA_SETIIN(char key_name[], long int *ival, int *ier) { if (!strncmp(key_name,"MAX_ORD",7)) *ier = IDASetMaxOrd(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"MAX_NSTEPS",10)) *ier = IDASetMaxNumSteps(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"MAX_ERRFAIL",11)) *ier = IDASetMaxErrTestFails(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"MAX_NITERS",10)) *ier = IDASetMaxNonlinIters(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"MAX_CONVFAIL",12)) *ier = IDASetMaxConvFails(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"SUPPRESS_ALG",12)) *ier = IDASetSuppressAlg(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"MAX_NSTEPS_IC",13)) *ier = IDASetMaxNumStepsIC(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"MAX_NITERS_IC",13)) *ier = IDASetMaxNumItersIC(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"MAX_NJE_IC",10)) *ier = IDASetMaxNumJacsIC(IDA_idamem, (int) *ival); else if (!strncmp(key_name,"LS_OFF_IC",9)) *ier = IDASetLineSearchOffIC(IDA_idamem, (int) *ival); else { *ier = -99; printf("FIDASETIIN: Unrecognized key.\n\n"); } }
void Cvode::maxorder(int maxord) { if (use_daspk_) { if (daspk_->mem_) { IDASetMaxOrd(daspk_->mem_, maxord); } }else{ if (mem_) { CVodeSetMaxOrd(mem_, maxord); } } }
int IDASetMaxOrdB(void *ida_mem, int which, int maxordB) { IDAMem IDA_mem; IDAadjMem IDAADJ_mem; IDABMem IDAB_mem; void *ida_memB; /* Is ida_mem valid? */ if (ida_mem == NULL) { IDAProcessError(NULL, IDA_MEM_NULL, "IDAA", "IDASetMaxOrdB", MSGAM_NULL_IDAMEM); return IDA_MEM_NULL; } IDA_mem = (IDAMem) ida_mem; /* Is ASA initialized? */ if (IDA_mem->ida_adjMallocDone == FALSE) { IDAProcessError(IDA_mem, IDA_NO_ADJ, "IDAA", "IDASetMaxOrdB", MSGAM_NO_ADJ); return(IDA_NO_ADJ); } IDAADJ_mem = IDA_mem->ida_adj_mem; /* Check the value of which */ if ( which >= nbckpbs ) { IDAProcessError(IDA_mem, IDA_ILL_INPUT, "IDAA", "IDASetMaxOrdB", MSGAM_BAD_WHICH); return(IDA_ILL_INPUT); } /* Find the IDABMem entry in the linked list corresponding to 'which'. */ IDAB_mem = IDAADJ_mem->IDAB_mem; while (IDAB_mem != NULL) { if( which == IDAB_mem->ida_index ) break; /* advance */ IDAB_mem = IDAB_mem->ida_next; } ida_memB = (void *) IDAB_mem->IDA_mem; return IDASetMaxOrd(ida_memB, maxordB); }
/* * Main solver optional input functions * TODO: complete */ CAMLprim value sundials_ml_ida_set_max_ord(value ida_solver, value maxord) { CAMLparam2(ida_solver, maxord); const int ret = IDASetMaxOrd(IDA_MEM(ida_solver), Int_val(maxord)); CAMLreturn(Val_int(ret)); }