OpenCMISS-Iron Internal API Documentation
solver_routines Module Reference

This module handles all solver routines. More...

Data Types

interface  SOLVER_DAE_EXTERNAL_INTEGRATE
 
interface  solver_dynamic_theta_set
 
interface  solver_label_get
 
interface  solver_label_set
 

Functions/Subroutines

subroutine, public cellml_equations_cellml_add (CELLML_EQUATIONS, CELLML, CELLML_INDEX, ERR, ERROR,)
 Adds a CellML environment to a solvers CellML equations. More...
 
subroutine, public cellml_equations_create_finish (CELLML_EQUATIONS, ERR, ERROR,)
 Finishes the process of creating CellML equations. More...
 
subroutine, public cellml_equations_create_start (SOLVER, CELLML_EQUATIONS, ERR, ERROR,)
 Starts the process of creating CellML equations. More...
 
subroutine, public cellml_equations_destroy (CELLML_EQUATIONS, ERR, ERROR,)
 Destroys the CellML equations. More...
 
subroutine cellml_equations_finalise (CELLML_EQUATIONS, ERR, ERROR,)
 Finalises the CellML equations and deallocates all memory. More...
 
subroutine cellml_equations_initialise (SOLVER, ERR, ERROR,)
 Initialises the CellML equations for a solver. More...
 
subroutine, public solver_cellml_equations_get (SOLVER, CELLML_EQUATIONS, ERR, ERROR,)
 Returns a pointer to the CellML equations for a solver. More...
 
subroutine solver_cellml_evaluator_create_finish (CELLML_EVALUATOR_SOLVER, ERR, ERROR,)
 Finishes the process of creating a CellML evaluator solver. More...
 
subroutine, public solver_cellml_evaluator_finalise (CELLML_EVALUATOR_SOLVER, ERR, ERROR,)
 Finalise a CellML evaluator solver. More...
 
subroutine solver_cellml_evaluator_initialise (SOLVER, ERR, ERROR,)
 Initialise a CellML evaluator solver for a solver. More...
 
subroutine solver_cellml_evaluator_library_type_get (CELLML_EVALUATOR_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a CellML evaluator solver. More...
 
subroutine solver_cellml_evaluator_library_type_set (CELLML_EVALUATOR_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a CellML evaluator solver. More...
 
subroutine solver_cellml_evaluator_time_get (CELLML_EVALUATOR_SOLVER, TIME, ERR, ERROR,)
 Returns the time for a CellML evaluator solver. More...
 
subroutine solver_cellml_evaluator_time_set (CELLML_EVALUATOR_SOLVER, TIME, ERR, ERROR,)
 Sets/changes the time for a CellML evaluator solver. More...
 
subroutine solver_cellml_evaluator_solve (CELLML_EVALUATOR_SOLVER, ERR, ERROR,)
 Solve a CellML evaluator solver. More...
 
subroutine solver_cellml_evaluate (CELLML_EVALUATOR_SOLVER, CELLML, N, ONLY_ONE_MODEL_INDEX, MODELS_DATA, MAX_NUMBER_STATES, STATE_DATA, MAX_NUMBER_PARAMETERS, PARAMETERS_DATA, MAX_NUMBER_INTERMEDIATES, INTERMEDIATE_DATA, ERR, ERROR,)
 Evaluate the CellML equations. More...
 
subroutine solver_create_finish (SOLVER, ERR, ERROR,)
 Finishes the process of creating a solver. More...
 
subroutine solver_dae_adams_moulton_finalise (ADAMS_MOULTON_SOLVER, ERR, ERROR,)
 Finalise an Adams-Moulton differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_adams_moulton_initialise (DAE_SOLVER, ERR, ERROR,)
 Initialise an Adams-Moulton solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_adams_moulton_solve (ADAMS_MOULTON_SOLVER, ERR, ERROR,)
 Solve using an Adams-Moulton differential-algebraic equation solver. More...
 
subroutine solver_dae_create_finish (DAE_SOLVER, ERR, ERROR,)
 Finishes the process of creating a differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_backward_finalise (BACKWARD_EULER_SOLVER, ERR, ERROR,)
 Finalise a backward Euler differential-algebraic equation and deallocate all memory. More...
 
subroutine solver_dae_euler_backward_initialise (EULER_DAE_SOLVER, ERR, ERROR,)
 Initialise a backward Euler solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_backward_solve (BACKWARD_EULER_SOLVER, ERR, ERROR,)
 Solve using a backward Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_finalise (EULER_SOLVER, ERR, ERROR,)
 Finalise an Euler differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_euler_forward_finalise (FORWARD_EULER_SOLVER, ERR, ERROR,)
 Finalise a forward Euler differential-algebraic equation and deallocate all memory. More...
 
subroutine solver_dae_euler_forward_initialise (EULER_DAE_SOLVER, ERR, ERROR,)
 Initialise a forward Euler solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_forward_integrate (FORWARD_EULER_SOLVER, CELLML, N, START_TIME, END_TIME, TIME_INCREMENT, ONLY_ONE_MODEL_INDEX, MODELS_DATA, MAX_NUMBER_STATES, STATE_DATA, MAX_NUMBER_PARAMETERS, PARAMETERS_DATA, MAX_NUMBER_INTERMEDIATES, INTERMEDIATE_DATA, ERR, ERROR,)
 Integrate using a forward Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_forward_solve (FORWARD_EULER_SOLVER, ERR, ERROR,)
 Solve using a forward Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_improved_finalise (IMPROVED_EULER_SOLVER, ERR, ERROR,)
 Finalise an improved Euler differential-algebaic equation and deallocate all memory. More...
 
subroutine solver_dae_euler_improved_initialise (EULER_DAE_SOLVER, ERR, ERROR,)
 Initialise an improved Euler solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_improved_solve (IMPROVED_EULER_SOLVER, ERR, ERROR,)
 Solve using an improved Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_initialise (DAE_SOLVER, ERR, ERROR,)
 Initialise an Euler solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_library_type_get (EULER_DAE_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for an Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_library_type_set (EULER_DAE_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for an Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_euler_solve (EULER_SOLVER, ERR, ERROR,)
 Solve using an Euler differential-algebraic equation solver. More...
 
subroutine, public solver_dae_euler_solver_type_get (SOLVER, DAE_EULER_TYPE, ERR, ERROR,)
 Returns the solve type for an Euler differential-algebraic equation solver. More...
 
subroutine, public solver_dae_euler_solver_type_set (SOLVER, DAE_EULER_TYPE, ERR, ERROR,)
 Sets/changes the solve type for an Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_finalise (DAE_SOLVER, ERR, ERROR,)
 Finalise a differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_initialise (SOLVER, ERR, ERROR,)
 Initialise a differential-algebraic equation solver for a solver. More...
 
subroutine solver_dae_library_type_get (DAE_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a differential-algebraic equation solver. More...
 
subroutine solver_dae_library_type_set (DAE_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a differential-algebraic equation solver. More...
 
subroutine solver_dae_bdf_finalise (BDF_SOLVER, ERR, ERROR,)
 Finalise a BDF differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_bdf_initialise (DAE_SOLVER, ERR, ERROR,)
 Initialise a BDF solver for a differential-algebraic equation solver. More...
 
subroutine solver_daecellmlpetsccontextfinalise (ctx, err, error,)
 Finalise a CellML PETSc solver context. More...
 
subroutine solver_daecellmlpetsccontextinitialise (ctx, err, error,)
 Initialise a CellML PETSc context. More...
 
subroutine solver_daecellmlpetsccontextset (ctx, solver, cellml, dofIdx, err, error,)
 Set a CellML PETSc context. More...
 
subroutine solver_dae_bdf_integrate (BDF_SOLVER, CELLML, N, START_TIME, END_TIME, TIME_INCREMENT, ONLY_ONE_MODEL_INDEX, MODELS_DATA, MAX_NUMBER_STATES, STATE_DATA, MAX_NUMBER_PARAMETERS, PARAMETERS_DATA, MAX_NUMBER_INTERMEDIATES, INTERMEDIATE_DATA, ERR, ERROR,)
 Integrate using a BDF differential-algebraic equation solver. More...
 
subroutine solver_dae_bdf_solve (BDF_SOLVER, ERR, ERROR,)
 Solve using a BDF differential-algebraic equation solver. More...
 
subroutine solver_dae_crank_nicolson_finalise (CRANK_NICOLSON_SOLVER, ERR, ERROR,)
 Finalise a Crank-Nicolson differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_crank_nicolson_initialise (DAE_SOLVER, ERR, ERROR,)
 Initialise a Crank-Nicolson solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_crank_nicolson_solve (CRANK_NICOLSON_SOLVER, ERR, ERROR,)
 Solve using a Crank-Nicolson differential-algebraic equation solver. More...
 
subroutine solver_dae_external_finalise (EXTERNAL_SOLVER, ERR, ERROR,)
 Finalise an external differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_external_initialise (DAE_SOLVER, ERR, ERROR,)
 Initialise an external solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_external_solve (EXTERNAL_SOLVER, ERR, ERROR,)
 Solve using an external differential-algebraic equation solver. More...
 
subroutine, public solver_daecellmlrhsevaluate (model, time, stateStartIdx, stateDataOffset, stateData, parameterStartIdx, parameterDataOffset, parameterData, intermediateStartIdx, intermediateDataOffset, intermediateData, rateStartIdx, rateDataOffset, rateData, err, error,)
 Integrate using a forward Euler differential-algebraic equation solver. More...
 
subroutine solver_dae_runge_kutta_finalise (RUNGE_KUTTA_SOLVER, ERR, ERROR,)
 Finalise a Runge-Kutta differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_runge_kutta_initialise (DAE_SOLVER, ERR, ERROR,)
 Initialise a Runge-Kutta solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_runge_kutta_solve (RUNGE_KUTTA_SOLVER, ERR, ERROR,)
 Solve using a Runge-Kutta differential-algebraic equation solver. More...
 
subroutine solver_dae_rush_larson_finalise (RUSH_LARSON_SOLVER, ERR, ERROR,)
 Finalise a Rush-Larson differential-algebraic equation solver and deallocate all memory. More...
 
subroutine solver_dae_rush_larson_initialise (DAE_SOLVER, ERR, ERROR,)
 Initialise an Rush-Larson solver for a differential-algebraic equation solver. More...
 
subroutine solver_dae_rush_larson_solve (RUSH_LARSON_SOLVER, ERR, ERROR,)
 Solve using a Rush-Larson differential-algebraic equation solver. More...
 
subroutine solver_dae_solve (DAE_SOLVER, ERR, ERROR,)
 Solve a differential-algebraic equation solver. More...
 
subroutine, public solver_dae_solver_type_get (SOLVER, DAE_SOLVE_TYPE, ERR, ERROR,)
 Returns the solve type for an differential-algebraic equation solver. More...
 
subroutine, public solver_dae_solver_type_set (SOLVER, DAE_SOLVE_TYPE, ERR, ERROR,)
 Sets/changes the solve type for an differential-algebraic equation solver. More...
 
subroutine, public solver_dae_times_set (SOLVER, START_TIME, END_TIME, ERR, ERROR,)
 Set/change the times for a differential-algebraic equation solver. More...
 
subroutine, public solver_dae_time_step_set (SOLVER, TIME_STEP, ERR, ERROR,)
 Set/change the (initial) time step size for a differential-algebraic equation solver. More...
 
subroutine, public solver_destroy (SOLVER, ERR, ERROR,)
 Destroys a solver. More...
 
subroutine solver_dynamic_create_finish (DYNAMIC_SOLVER, ERR, ERROR,)
 Finishes the process of creating a dynamic solver. More...
 
subroutine, public solver_dynamic_degree_get (SOLVER, DEGREE, ERR, ERROR,)
 Returns the degree of the polynomial used to interpolate time for a dynamic solver. More...
 
subroutine, public solver_dynamic_degree_set (SOLVER, DEGREE, ERR, ERROR,)
 Sets/changes the degree of the polynomial used to interpolate time for a dynamic solver. More...
 
recursive subroutine solver_dynamic_finalise (DYNAMIC_SOLVER, ERR, ERROR,)
 Finalise a dynamic solver and deallocates all memory. More...
 
subroutine solver_dynamic_initialise (SOLVER, ERR, ERROR,)
 Initialise a dynamic solver for a solver. More...
 
subroutine solver_dynamic_library_type_get (DYNAMIC_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a dynamic solver. More...
 
subroutine solver_dynamic_library_type_set (DYNAMIC_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a dynamic solver. More...
 
subroutine, public solver_dynamic_linearity_type_get (SOLVER, LINEARITY_TYPE, ERR, ERROR,)
 Returns the linearity type for the dynamic solver. More...
 
subroutine, public solver_dynamic_linearity_type_set (SOLVER, LINEARITY_TYPE, ERR, ERROR,)
 Sets/changes the linearity type for the dynamic solver. More...
 
subroutine, public solver_dynamic_nonlinear_solver_get (SOLVER, NONLINEAR_SOLVER, ERR, ERROR,)
 Returns the nonlinear solver associated with a dynamic solver. More...
 
subroutine, public solver_dynamic_linear_solver_get (SOLVER, LINEAR_SOLVER, ERR, ERROR,)
 Returns the linear solver associated with a dynamic solver. More...
 
subroutine solver_dynamic_mean_predicted_calculate (SOLVER, ERR, ERROR,)
 Copies the current to previous time-step, calculates mean predicted values, predicted values and previous residual values. More...
 
subroutine, public solver_dynamic_restart_get (SOLVER, RESTART, ERR, ERROR,)
 Returns the restart value for a dynamic solver. More...
 
subroutine, public solver_dynamic_restart_set (SOLVER, RESTART, ERR, ERROR,)
 Sets/changes the restart value for a dynamic solver. More...
 
subroutine, public solver_time_stepping_monitor (DAE_SOLVER, STEPS, TIME, ERR, ERROR,)
 Monitors the differential-algebraic equations solve. More...
 
subroutine, public solver_dynamic_order_set (SOLVER, ORDER, ERR, ERROR,)
 Sets/changes the order for a dynamic solver. More...
 
subroutine, public solver_dynamic_scheme_set (SOLVER, SCHEME, ERR, ERROR,)
 Sets/changes the scheme for a dynamic solver. More...
 
subroutine solver_dynamic_solve (DYNAMIC_SOLVER, ERR, ERROR,)
 Solve a dynamic solver. More...
 
subroutine solver_dynamic_theta_set_dp1 (SOLVER, THETA, ERR, ERROR,)
 Sets/changes a single theta value for a dynamic solver. More...
 
subroutine solver_dynamic_theta_set_dp (SOLVER, THETA, ERR, ERROR,)
 Sets/changes the theta value for a dynamic solver. More...
 
subroutine, public solver_dynamic_ale_set (SOLVER, ALE, ERR, ERROR,)
 Sets/changes the ALE flag for a dynamic solver. More...
 
subroutine, public solver_dynamic_update_bc_set (SOLVER, UPDATE_BC, ERR, ERROR,)
 Sets/changes the bc flag for a dynamic solver. More...
 
subroutine, public solver_dynamic_times_set (SOLVER, CURRENT_TIME, TIME_INCREMENT, ERR, ERROR,)
 Sets/changes the dynamic times for a dynamic solver. More...
 
subroutine solver_eigenproblem_create_finish (EIGENPROBLEM_SOLVER, ERR, ERROR,)
 Finishes the process of creating a eigenproblem solver. More...
 
subroutine solver_eigenproblem_finalise (EIGENPROBLEM_SOLVER, ERR, ERROR,)
 Finalise a eigenproblem solver for a solver. More...
 
subroutine solver_eigenproblem_initialise (SOLVER, ERR, ERROR,)
 Initialise a eigenproblem solver for a solver. More...
 
subroutine solver_eigenproblem_library_type_get (EIGENPROBLEM_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for an eigenproblem solver. More...
 
subroutine solver_eigenproblem_library_type_set (EIGENPROBLEM_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for an eigenproblem solver. More...
 
subroutine solver_eigenproblemmatriceslibrarytypeget (EIGENPROBLEM_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for an eigenproblem solver matrices. More...
 
subroutine solver_eigenproblem_solve (EIGENPROBLEM_SOLVER, ERR, ERROR,)
 Solve a eigenproblem solver. More...
 
subroutine, public solver_equations_boundary_conditions_get (SOLVER_EQUATIONS, BOUNDARY_CONDITIONS, ERR, ERROR,)
 Gets the boundary conditions for solver equations. More...
 
subroutine, public solver_equations_create_finish (SOLVER_EQUATIONS, ERR, ERROR,)
 Finishes the process of creating solver equations. More...
 
subroutine, public solver_equations_create_start (SOLVER, SOLVER_EQUATIONS, ERR, ERROR,)
 Starts the process of creating solver equations. More...
 
subroutine, public solver_equations_destroy (SOLVER_EQUATIONS, ERR, ERROR,)
 Destroys the solver equations. More...
 
subroutine, public solver_equations_equations_set_add (SOLVER_EQUATIONS, EQUATIONS_SET, EQUATIONS_SET_INDEX, ERR, ERROR,)
 Adds equations sets to solver equations. More...
 
subroutine solver_equations_finalise (SOLVER_EQUATIONS, ERR, ERROR,)
 Finalises the solver equations and deallocates all memory. More...
 
subroutine solver_equations_initialise (SOLVER, ERR, ERROR,)
 Initialises the solver equations for a solver. More...
 
subroutine, public solver_equations_interface_condition_add (SOLVER_EQUATIONS, INTERFACE_CONDITION, INTERFACE_CONDITION_INDEX, ERR, ERROR,)
 Adds an interface condition to the solver equations. More...
 
subroutine, public solver_equations_linearity_type_set (SOLVER_EQUATIONS, LINEARITY_TYPE, ERR, ERROR,)
 Sets/changes the linearity type for solver equations. More...
 
subroutine, public solverequations_boundaryconditionscreatefinish (SOLVER_EQUATIONS, ERR, ERROR,)
 Finishes the creation of boundary conditions for the given solver equations. More...
 
subroutine, public solverequations_boundaryconditionscreatestart (SOLVER_EQUATIONS, BOUNDARY_CONDITIONS, ERR, ERROR,)
 Starts the creation of boundary conditions for the given solver equations, and returns a pointer to the boundary conditions. More...
 
subroutine, public solver_equations_sparsity_type_set (SOLVER_EQUATIONS, SPARSITY_TYPE, ERR, ERROR,)
 Sets/changes the sparsity type for solver equations. More...
 
subroutine, public solver_equations_time_dependence_type_set (SOLVER_EQUATIONS, TIME_DEPENDENCE_TYPE, ERR, ERROR,)
 Sets/changes the time dependence type for solver equations. More...
 
subroutine, public solverequations_numberofmatricesget (solverEquations, numberOfMatrices, err, error,)
 Get the number of solver matrices for the solver equations. More...
 
subroutine, public solverequations_matrixget (solverEquations, matrixIndex, matrix, err, error,)
 Get a solver matrix from the solver equations matrices. More...
 
subroutine, public solverequations_jacobianmatrixget (solverEquations, matrix, err, error,)
 Get the Jacobian matrix from the solver equations matrices for nonlinear solver equations. More...
 
subroutine, public solverequations_vectorget (solverEquations, matrixIndex, vector, err, error,)
 Get the vector assiciated with a solver matrix from the solver equations matrices. More...
 
subroutine, public solverequations_residualvectorget (solverEquations, residualVector, err, error,)
 Get the residual vector from the solver equations for nonlinear problems. More...
 
subroutine, public solverequations_rhsvectorget (solverEquations, rhsVector, err, error,)
 Get the right hand side vector from the solver equations. More...
 
recursive subroutine solver_finalise (SOLVER, ERR, ERROR,)
 Finalises a solver and deallocates all memory. More...
 
subroutine, public solver_geometrictransformationarbitrarypathset (solver, arbitraryPath, err, error,)
 Set the arbitrary path logical for geometric transformation solver. More...
 
subroutine, public solver_geometrictransformationclear (solver, err, error,)
 Clear transformation for a geometric transformation solver. More...
 
subroutine, public solver_geometrictransformationfieldset (solver, field, variableType, err, error,)
 Set the field and field variable type for geometric transformation solver. More...
 
subroutine, public solver_geometrictransformationmatrixset (solver, matrix, incrementIdx, err, error,)
 Set the full transformation matrix for a geometric transformation at a load increment. More...
 
subroutine, public solver_geometrictransformationnumberofloadincrementsset (solver, numberOfIncrements, err, error,)
 Set the number of load increments for geometric transformation solver. More...
 
subroutine, public solver_geometrictransformationrotationset (solver, pt, axis, theta, incrementIdx, err, error,)
 Set the rotation for a geometric transformation. More...
 
subroutine, public solver_geometrictransformationscalingsset (solver, scalings, err, error,)
 Set the scalings for geometric transformation solver. More...
 
subroutine, public solver_geometrictransformationtranslationset (solver, translation, incrementIdx, err, error,)
 Set the translation for a geometric transformation. More...
 
subroutine solver_geometrictransformationfinalise (geometricTransformationSolver, err, error,)
 Finalise a geometric transformation solver for a solver. More...
 
subroutine solver_geometrictransformationinitialise (solver, err, error,)
 Initialise a geometric transformation solver for a solver. More...
 
subroutine, public solver_newton_cellml_evaluator_create (SOLVER, CELLML_SOLVER, ERR, ERROR,)
 Create a CellML evaluator solver for the Newton solver. More...
 
subroutine solver_initialise (SOLVERS, SOLVER_INDEX, ERR, ERROR,)
 Initialise a solver for a control loop. More...
 
subroutine solver_initialise_ptr (SOLVER, ERR, ERROR,)
 Initialise a solver. More...
 
subroutine solver_label_get_c (SOLVER, LABEL, ERR, ERROR,)
 Returns the label of a solver. More...
 
subroutine solver_label_get_vs (SOLVER, LABEL, ERR, ERROR,)
 Returns the label of a solver. More...
 
subroutine solver_label_set_c (SOLVER, LABEL, ERR, ERROR,)
 Sets the label of a solver. More...
 
subroutine solver_label_set_vs (SOLVER, LABEL, ERR, ERROR,)
 Sets the label of a solver. More...
 
subroutine, public solver_library_type_get (SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Gets the type of library to use for the solver. More...
 
subroutine, public solver_library_type_set (SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library type to use for the solver. More...
 
subroutine solver_linear_create_finish (LINEAR_SOLVER, ERR, ERROR,)
 Finishes the process of creating a linear solver. More...
 
subroutine solver_linear_direct_cholesky_finalise (DIRECT_SOLVER, ERR, ERROR,)
 Finalise a Cholesky direct linear solver and deallocate all memory. More...
 
subroutine solver_linear_direct_cholesky_initialise (DIRECT_SOLVER, ERR, ERROR,)
 Initialise a Cholesky direct linear solver for a direct linear solver. More...
 
subroutine solver_linear_direct_create_finish (LINEAR_DIRECT_SOLVER, ERR, ERROR,)
 Finishes the process of creating a linear direct solver. More...
 
subroutine solver_linear_direct_finalise (LINEAR_DIRECT_SOLVER, ERR, ERROR,)
 Finalise a direct linear solver for a linear solver and deallocate all memory. More...
 
subroutine solver_linear_direct_initialise (LINEAR_SOLVER, ERR, ERROR,)
 Initialise a direct linear solver for a lienar solver. More...
 
subroutine solver_linear_direct_library_type_get (DIRECT_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a direct linear solver. More...
 
subroutine solver_linear_direct_library_type_set (DIRECT_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a direct linear solver. More...
 
subroutine solver_linear_direct_lu_finalise (DIRECT_SOLVER, ERR, ERROR,)
 Finalise a LU direct linear solver and deallocate all memory. More...
 
subroutine solver_linear_direct_lu_initialise (DIRECT_SOLVER, ERR, ERROR,)
 Initialise a LU direct linear solver for a direct linear solver. More...
 
subroutine solver_lineardirectmatriceslibrarytypeget (DIRECT_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a direct linear solver matrices. More...
 
subroutine, public solver_mumpsseticntl (solver, icntl, ivalue, err, error,)
 Sets MUMPS ICNTL(icntl)=ivalue through PETSc Mat API (see MUMPS user guide for more info). Must be called after the boundary conditions have been set up. More...
 
subroutine, public solver_mumpssetcntl (solver, icntl, val, err, error,)
 Sets MUMPS CNTL(icntl)=val through PETSc Mat API (see MUMPS user guide for more info). Must be called after the boundary conditions have been set up. More...
 
subroutine solver_linear_direct_solve (LINEAR_DIRECT_SOLVER, ERR, ERROR,)
 Solve a linear direct solver. More...
 
subroutine solver_linear_direct_svd_finalise (LINEAR_DIRECT_SOLVER, ERR, ERROR,)
 Finalise a SVD direct linear solver and deallocate all memory. More...
 
subroutine solver_linear_direct_svd_initialise (DIRECT_SOLVER, ERR, ERROR,)
 Initialise a SVD direct linear solver for a direct linear solver. More...
 
subroutine, public solver_linear_direct_type_set (SOLVER, DIRECT_SOLVER_TYPE, ERR, ERROR,)
 Sets/changes the type of direct linear solver. More...
 
subroutine solver_linear_finalise (LINEAR_SOLVER, ERR, ERROR,)
 Finalise a linear solver for a solver. More...
 
subroutine solver_linear_initialise (SOLVER, ERR, ERROR,)
 Initialise a linear solver for a solver. More...
 
subroutine, public solver_lineariterativeabsolutetoleranceset (SOLVER, ABSOLUTE_TOLERANCE, ERR, ERROR,)
 Sets/changes the maximum absolute tolerance for an iterative linear solver. More...
 
subroutine solver_linear_iterative_create_finish (LINEAR_ITERATIVE_SOLVER, ERR, ERROR,)
 Finishes the process of creating a linear iterative solver. More...
 
subroutine, public solver_lineariterativedivergencetoleranceset (SOLVER, DIVERGENCE_TOLERANCE, ERR, ERROR,)
 Sets/changes the maximum divergence tolerance for an iterative linear solver. More...
 
subroutine solver_linear_iterative_finalise (LINEAR_ITERATIVE_SOLVER, ERR, ERROR,)
 Finalise an iterative linear solver for a linear solver and deallocate all memory. More...
 
subroutine, public solver_linear_iterative_gmres_restart_set (SOLVER, GMRES_RESTART, ERR, ERROR,)
 Sets/changes the GMRES restart value for a GMRES iterative linear solver. More...
 
subroutine solver_linear_iterative_initialise (LINEAR_SOLVER, ERR, ERROR,)
 Initialise an iterative linear solver for a linear solver. More...
 
subroutine solver_linear_iterative_library_type_get (ITERATIVE_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for an iterative linear solver. More...
 
subroutine solver_linear_iterative_library_type_set (ITERATIVE_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for an iterative linear solver. More...
 
subroutine solver_lineariterativematriceslibrarytypeget (ITERATIVE_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for an iterative linear solver matrices. More...
 
subroutine, public solver_lineariterativemaximumiterationsset (SOLVER, MAXIMUM_ITERATIONS, ERR, ERROR,)
 Sets/changes the maximum number of iterations for an iterative linear solver. More...
 
subroutine, public solver_lineariterativepreconditionertypeset (SOLVER, ITERATIVE_PRECONDITIONER_TYPE, ERR, ERROR,)
 Sets/changes the type of preconditioner for an iterative linear solver. More...
 
subroutine, public solver_lineariterativerelativetoleranceset (SOLVER, RELATIVE_TOLERANCE, ERR, ERROR,)
 Sets/changes the relative tolerance for an iterative linear solver. More...
 
subroutine, public solver_lineariterativesolutioninittypeset (SOLVER, SOLUTION_INITIALISE_TYPE, ERR, ERROR,)
 Sets/changes the solution initialise type for an iterative linear solver. More...
 
subroutine solver_linear_iterative_solve (LINEAR_ITERATIVE_SOLVER, ERR, ERROR,)
 Solves a linear iterative linear solver. More...
 
subroutine, public solver_linear_iterative_type_set (SOLVER, ITERATIVE_SOLVER_TYPE, ERR, ERROR,)
 Sets/changes the type of iterative linear solver. More...
 
subroutine solver_linear_library_type_get (LINEAR_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a linear solver. More...
 
subroutine solver_linear_library_type_set (LINEAR_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a linear solver. More...
 
subroutine solver_linear_matrices_library_type_get (LINEAR_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a linear solver matrices. More...
 
subroutine solver_linear_solve (LINEAR_SOLVER, ERR, ERROR,)
 Solve a linear solver. More...
 
subroutine, public solver_linear_type_set (SOLVER, LINEAR_SOLVE_TYPE, ERR, ERROR,)
 Sets/changes the type of linear solver. More...
 
subroutine, public solver_matrices_dynamic_assemble (SOLVER, SELECTION_TYPE, ERR, ERROR,)
 Assembles the solver matrices and rhs from the dynamic equations. More...
 
subroutine, public solver_matrices_static_assemble (SOLVER, SELECTION_TYPE, ERR, ERROR,)
 Assembles the solver matrices and rhs from the static equations. More...
 
subroutine solver_matrices_library_type_get (SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Gets the type of library to use for the solver matrices. More...
 
subroutine, public solver_quasi_newton_absolute_tolerance_set (SOLVER, ABSOLUTE_TOLERANCE, ERR, ERROR,)
 Sets/changes the maximum absolute tolerance for a nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasinewtonlinesearchmonitoroutputset (solver, linesearchMonitorOutputFlag, err, error,)
 Enables/disables output monitoring for a nonlinear Quasi-Newton line search solver. More...
 
subroutine solver_quasi_newton_create_finish (QUASI_NEWTON_SOLVER, ERR, ERROR,)
 Finishes the process of creating a Quasi-Newton solver. More...
 
recursive subroutine solver_quasi_newton_finalise (QUASI_NEWTON_SOLVER, ERR, ERROR,)
 Finalise a Quasi-Newton solver and deallocate all memory. More...
 
subroutine solver_quasi_newton_initialise (NONLINEAR_SOLVER, ERR, ERROR,)
 Initialise a Quasi-Newton solver for a nonlinear solver. More...
 
subroutine, public solver_quasinewtonjacobiancalculationtypeset (SOLVER, JACOBIAN_CALCULATION_TYPE, ERR, ERROR,)
 Sets/changes the type of Jacobian calculation type for a Quasi-Newton solver. More...
 
subroutine solver_quasi_newton_library_type_get (QUASI_NEWTON_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a Quasi-Newton solver. More...
 
subroutine solver_quasi_newton_library_type_set (QUASI_NEWTON_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_linear_solver_get (SOLVER, LINEAR_SOLVER, ERR, ERROR,)
 Returns the linear solver associated with a Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_cellml_solver_get (SOLVER, CELLML_SOLVER, ERR, ERROR,)
 Returns the CellML solver associated with a Quasi-Newton solver. More...
 
subroutine, public solver_quasinewtonconvergencetesttypeset (solver, convergenceTestType, err, error,)
 Sets/changes the convergence test for a Quasi-Newton nonlinear solver. More...
 
subroutine solver_quasinewtonlinesearchcreatefinish (LINESEARCH_SOLVER, ERR, ERROR,)
 Finishes the process of creating nonlinear Quasi-Newton line search solver. More...
 
subroutine solver_quasinewtonlinesearchfinalise (linesearchSolver, err, error,)
 Finalise a nonlinear Quasi-Newton line search solver and deallocate all memory. More...
 
subroutine solver_quasi_newton_linesearch_initialise (QUASI_NEWTON_SOLVER, ERR, ERROR,)
 Initialise a nonlinear Quasi-Newton line search solver for a Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_linesearch_maxstep_set (SOLVER, LINESEARCH_MAXSTEP, ERR, ERROR,)
 Sets/changes the line search maximum step for a nonlinear Quasi-Newton linesearch solver. More...
 
subroutine solver_quasi_newton_linesearch_solve (LINESEARCH_SOLVER, ERR, ERROR,)
 
subroutine, public solver_quasi_newton_linesearch_steptol_set (SOLVER, LINESEARCH_STEPTOL, ERR, ERROR,)
 Sets/changes the line search step tolerance for a nonlinear Quasi-Newton line search solver. More...
 
subroutine, public solver_quasi_newton_linesearch_type_set (SOLVER, LINESEARCH_TYPE, ERR, ERROR,)
 Sets/changes the line search type for a nonlinear Quasi-Newton linesearch solver. More...
 
subroutine solver_quasinewtonmatriceslibrarytypeget (QUASI_NEWTON_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a Quasi-Newton solver matrices. More...
 
subroutine, public solver_quasinewtonmaximumfunctionevaluationsset (SOLVER, MAXIMUM_FUNCTION_EVALUATIONS, ERR, ERROR,)
 Sets/changes the maximum number of function evaluations for a nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_maximum_iterations_set (SOLVER, MAXIMUM_ITERATIONS, ERR, ERROR,)
 Sets/changes the maximum number of iterations for a nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_relative_tolerance_set (SOLVER, RELATIVE_TOLERANCE, ERR, ERROR,)
 Sets/changes the relative tolerance for a nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_solution_init_type_set (SOLVER, SOLUTION_INITIALISE_TYPE, ERR, ERROR,)
 Sets/changes the solution initialisation for a nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_solution_tolerance_set (SOLVER, SOLUTION_TOLERANCE, ERR, ERROR,)
 Sets/changes the solution tolerance for a nonlinear Quasi-Newton solver. More...
 
subroutine solver_quasi_newton_solve (QUASI_NEWTON_SOLVER, ERR, ERROR,)
 
subroutine solver_quasinewtontrustregioncreatefinish (TRUSTREGION_SOLVER, ERR, ERROR,)
 Finishes the process of creating nonlinear Quasi-Newton trust region solver. More...
 
subroutine, public solver_quasi_newton_trustregion_delta0_set (SOLVER, TRUSTREGION_DELTA0, ERR, ERROR,)
 Sets/changes the trust region delta0 for a nonlinear Quasi-Newton trust region solver solver. More...
 
subroutine solver_quasi_newton_trustregion_finalise (TRUSTREGION_SOLVER, ERR, ERROR,)
 Finalise a nonlinear Quasi-Newton trust region solver and deallocate all memory. More...
 
subroutine solver_quasi_newton_trustregion_initialise (QUASI_NEWTON_SOLVER, ERR, ERROR,)
 Initialise a Quaso-Newton trust region solver for a nonlinear solver. More...
 
subroutine solver_quasi_newton_trustregion_solve (TRUSTREGION_SOLVER, ERR, ERROR,)
 
subroutine, public solver_quasinewtontrustregiontoleranceset (SOLVER, TRUSTREGION_TOLERANCE, ERR, ERROR,)
 Sets/changes the trust region tolerance for a nonlinear Quasi-Newton trust region solver. More...
 
subroutine, public solver_quasi_newton_restart_set (SOLVER, RESTART, ERR, ERROR,)
 Sets/changes the restart of nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_restart_type_set (SOLVER, QUASI_NEWTON_RESTART_TYPE, ERR, ERROR,)
 Sets/changes the restart type of nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_scale_type_set (SOLVER, QUASI_NEWTON_SCALE_TYPE, ERR, ERROR,)
 Sets/changes the scale type of nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_type_set (SOLVER, QUASI_NEWTON_TYPE, ERR, ERROR,)
 Sets/changes the type of nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_quasi_newton_solve_type_set (SOLVER, QUASI_NEWTON_SOLVE_TYPE, ERR, ERROR,)
 Sets/changes the solve type of nonlinear Quasi-Newton solver. More...
 
subroutine, public solver_newton_absolute_tolerance_set (SOLVER, ABSOLUTE_TOLERANCE, ERR, ERROR,)
 Sets/changes the maximum absolute tolerance for a nonlinear Newton solver. More...
 
subroutine, public solver_newtonlinesearchmonitoroutputset (solver, linesearchMonitorOutputFlag, err, error,)
 Enables/disables output monitoring for a nonlinear Newton line search solver. More...
 
subroutine solver_newton_create_finish (NEWTON_SOLVER, ERR, ERROR,)
 Finishes the process of creating a Newton solver. More...
 
recursive subroutine solver_newton_finalise (NEWTON_SOLVER, ERR, ERROR,)
 Finalise a Newton solver and deallocate all memory. More...
 
subroutine solver_newton_initialise (NONLINEAR_SOLVER, ERR, ERROR,)
 Initialise a Newton solver for a nonlinear solver. More...
 
subroutine, public solver_newton_jacobian_calculation_type_set (SOLVER, JACOBIAN_CALCULATION_TYPE, ERR, ERROR,)
 Sets/changes the type of Jacobian calculation type for a Newton solver. More...
 
subroutine solver_newton_library_type_get (NEWTON_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a Newton solver. More...
 
subroutine solver_newton_library_type_set (NEWTON_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a Newton solver. More...
 
subroutine, public solver_newton_linear_solver_get (SOLVER, LINEAR_SOLVER, ERR, ERROR,)
 Returns the linear solver associated with a Newton solver. More...
 
subroutine, public solver_newton_cellml_solver_get (SOLVER, CELLML_SOLVER, ERR, ERROR,)
 Returns the CellML solver associated with a Newton solver. More...
 
subroutine, public solver_newtonconvergencetesttypeset (solver, convergenceTestType, err, error,)
 Sets/changes the convergence test for a Newton nonlinear solver. More...
 
subroutine, public solver_newton_linesearch_alpha_set (SOLVER, LINESEARCH_ALPHA, ERR, ERROR,)
 Sets/changes the line search alpha for a Newton linesearch solver. More...
 
subroutine solver_newton_linesearch_create_finish (LINESEARCH_SOLVER, ERR, ERROR,)
 Finishes the process of creating nonlinear Newton line search solver. More...
 
subroutine solver_newton_linesearch_finalise (LINESEARCH_SOLVER, ERR, ERROR,)
 Finalise a nonlinear Newton line search solver and deallocate all memory. More...
 
subroutine solver_newton_linesearch_initialise (NEWTON_SOLVER, ERR, ERROR,)
 Initialise a nonlinear Newton line search solver for a Newton solver. More...
 
subroutine, public solver_newton_linesearch_maxstep_set (SOLVER, LINESEARCH_MAXSTEP, ERR, ERROR,)
 Sets/changes the line search maximum step for a nonlinear Newton linesearch solver. More...
 
subroutine solver_newton_linesearch_solve (LINESEARCH_SOLVER, ERR, ERROR,)
 
subroutine, public solver_newton_linesearch_steptol_set (SOLVER, LINESEARCH_STEPTOL, ERR, ERROR,)
 Sets/changes the line search step tolerance for a nonlinear Newton line search solver. More...
 
subroutine, public solver_newton_linesearch_type_set (SOLVER, LINESEARCH_TYPE, ERR, ERROR,)
 Sets/changes the line search type for a nonlinear Newton linesearch solver. More...
 
subroutine solver_newton_matrices_library_type_get (NEWTON_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a Newton solver matrices. More...
 
subroutine, public solver_newtonmaximumfunctionevaluationsset (SOLVER, MAXIMUM_FUNCTION_EVALUATIONS, ERR, ERROR,)
 Sets/changes the maximum number of function evaluations for a nonlinear Newton solver. More...
 
subroutine, public solver_newton_maximum_iterations_set (SOLVER, MAXIMUM_ITERATIONS, ERR, ERROR,)
 Sets/changes the maximum number of iterations for a nonlinear Newton solver. More...
 
subroutine, public solver_newton_relative_tolerance_set (SOLVER, RELATIVE_TOLERANCE, ERR, ERROR,)
 Sets/changes the relative tolerance for a nonlinear Newton solver. More...
 
subroutine, public solver_newton_solution_init_type_set (SOLVER, SOLUTION_INITIALISE_TYPE, ERR, ERROR,)
 Sets/changes the solution initialisation for a nonlinear Newton solver. More...
 
subroutine, public solver_newton_solution_tolerance_set (SOLVER, SOLUTION_TOLERANCE, ERR, ERROR,)
 Sets/changes the solution tolerance for a nonlinear Newton solver. More...
 
subroutine solver_newton_solve (NEWTON_SOLVER, ERR, ERROR,)
 
subroutine solver_newton_trustregion_create_finish (TRUSTREGION_SOLVER, ERR, ERROR,)
 Finishes the process of creating nonlinear Newton trust region solver. More...
 
subroutine, public solver_newton_trustregion_delta0_set (SOLVER, TRUSTREGION_DELTA0, ERR, ERROR,)
 Sets/changes the trust region delta0 for a nonlinear Newton trust region solver solver. More...
 
subroutine solver_newton_trustregion_finalise (TRUSTREGION_SOLVER, ERR, ERROR,)
 Finalise a nonlinear Newton trust region solver and deallocate all memory. More...
 
subroutine solver_newton_trustregion_initialise (NEWTON_SOLVER, ERR, ERROR,)
 Initialise a Newton trust region solver for a nonlinear solver. More...
 
subroutine solver_newton_trustregion_solve (TRUSTREGION_SOLVER, ERR, ERROR,)
 
subroutine, public solver_newton_trustregion_tolerance_set (SOLVER, TRUSTREGION_TOLERANCE, ERR, ERROR,)
 Sets/changes the trust region tolerance for a nonlinear Newton trust region solver. More...
 
subroutine, public solver_newton_type_set (SOLVER, NEWTON_SOLVE_TYPE, ERR, ERROR,)
 Sets/changes the type of nonlinear Newton solver. More...
 
subroutine solver_nonlinear_create_finish (NONLINEAR_SOLVER, ERR, ERROR,)
 Finishes the process of creating a nonlinear solver. More...
 
subroutine, public solver_nonlinear_divergence_exit (SOLVER, ERR, ERROR,)
 Instead of warning on nonlinear divergence, exit with error. More...
 
recursive subroutine solver_nonlinear_finalise (NONLINEAR_SOLVER, ERR, ERROR,)
 Finalise a nonlinear solver for a solver. More...
 
subroutine solver_nonlinear_initialise (SOLVER, ERR, ERROR,)
 Initialise a nonlinear solver for a solver. More...
 
subroutine solver_nonlinear_library_type_get (NONLINEAR_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a nonlinear solver. More...
 
subroutine solver_nonlinear_library_type_set (NONLINEAR_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for a nonlinear solver. More...
 
subroutine solver_nonlinear_matrices_library_type_get (NONLINEAR_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for a nonlinear solver matrices. More...
 
subroutine, public solver_nonlinear_monitor (nonlinearSolver, its, norm, err, error,)
 Monitors the nonlinear solve. More...
 
subroutine solver_nonlinear_solve (NONLINEAR_SOLVER, ERR, ERROR,)
 
subroutine, public solver_nonlinear_type_set (SOLVER, NONLINEAR_SOLVE_TYPE, ERR, ERROR,)
 Sets/changes the type of nonlinear solver. More...
 
subroutine solver_optimiser_create_finish (OPTIMISER_SOLVER, ERR, ERROR,)
 Finishes the process of creating an optimiser solver. More...
 
subroutine solver_optimiser_finalise (OPTIMISER_SOLVER, ERR, ERROR,)
 Finalise a optimiser solver. More...
 
subroutine solver_optimiser_initialise (SOLVER, ERR, ERROR,)
 Initialise an optimiser solver for a solver. More...
 
subroutine solver_optimiser_library_type_get (OPTIMISER_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for an optimiser solver. More...
 
subroutine solver_optimiser_library_type_set (OPTIMISER_SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
 Sets/changes the type of library to use for an optimisation solver. More...
 
subroutine solver_optimiser_matrices_library_type_get (OPTIMISER_SOLVER, MATRICES_LIBRARY_TYPE, ERR, ERROR,)
 Returns the type of library to use for an optimiser solver matrices. More...
 
subroutine solver_optimiser_solve (OPTIMISER_SOLVER, ERR, ERROR,)
 Solve an optimiser solver. More...
 
subroutine, public solver_output_type_set (SOLVER, OUTPUT_TYPE, ERR, ERROR,)
 Sets/changes the output type for a solver. More...
 
subroutine, public solver_solution_update (SOLVER, ERR, ERROR,)
 Updates the solver solution from the field variables. More...
 
subroutine, public solver_solver_equations_get (SOLVER, SOLVER_EQUATIONS, ERR, ERROR,)
 Returns a pointer to the solver equations for a solver. More...
 
recursive subroutine, public solver_solve (SOLVER, ERR, ERROR,)
 Solve the problem. More...
 
subroutine, public solver_type_set (SOLVER, SOLVE_TYPE, ERR, ERROR,)
 Sets/changes the type for a solver. More...
 
subroutine, public solver_variables_dynamic_field_update (SOLVER, ERR, ERROR,)
 Updates the dependent variables from the solver solution for dynamic solvers. More...
 
subroutine, public solver_variablesdynamicfieldpreviousvaluesupdate (SOLVER, ERR, ERROR,)
 Updates the previous values from the solver solution for dynamic solvers. More...
 
subroutine, public solver_variables_dynamic_nonlinear_update (SOLVER, ERR, ERROR,)
 Update the field values form the dynamic factor * current solver values AND add in mean predicted displacements. More...
 
subroutine, public solver_variables_field_update (SOLVER, ERR, ERROR,)
 Updates the dependent variables from the solver solution for static solvers. More...
 
subroutine, public solvers_create_finish (SOLVERS, ERR, ERROR,)
 Finish the creation of solvers. More...
 
subroutine, public solvers_create_start (CONTROL_LOOP, SOLVERS, ERR, ERROR,)
 Start the creation of a solvers for the control loop. More...
 
subroutine, public solvers_destroy (SOLVERS, ERR, ERROR,)
 Destroys the solvers. More...
 
subroutine solvers_finalise (SOLVERS, ERR, ERROR,)
 Finalises the solvers and deallocates all memory. More...
 
subroutine solvers_initialise (CONTROL_LOOP, ERR, ERROR,)
 Initialises the solvers for a control loop. More...
 
subroutine, public solvers_number_set (SOLVERS, NUMBER_OF_SOLVERS, ERR, ERROR,)
 Sets/changes the number of solvers. More...
 
subroutine, public solvers_solver_get (SOLVERS, SOLVER_INDEX, SOLVER, ERR, ERROR,)
 Returns a pointer to the specified solver in the list of solvers. More...
 
subroutine, public solver_linked_solver_add (SOLVER, SOLVER_TO_LINK, SOLV_TYPE, ERR, ERROR,)
 Adds a linked solver to the solver. Also sets the solver type for the linked solver, als well as its linking solver. More...
 
subroutine, public solver_linked_solver_remove (SOLVER, SOLV_TYPE, ERR, ERROR,)
 Adds a linked solver to the solver. Also sets the solver type for the linked solver, als well as its linking solver. More...
 

Variables

integer(intg), parameter, public solver_number_of_solver_types =9
 Number of different solver types possible. More...
 
integer(intg), parameter, public solver_linear_type =1
 A linear solver. More...
 
integer(intg), parameter, public solver_nonlinear_type =2
 A nonlinear solver. More...
 
integer(intg), parameter, public solver_dynamic_type =3
 A dynamic solver. More...
 
integer(intg), parameter, public solver_dae_type =4
 A differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_eigenproblem_type =5
 A eigenproblem solver. More...
 
integer(intg), parameter, public solver_optimiser_type =6
 An optimiser solver. More...
 
integer(intg), parameter, public solver_cellml_evaluator_type =7
 A CellML evaluation solver. More...
 
integer(intg), parameter solver_state_iteration_type =8
 An state iteration solver. More...
 
integer(intg), parameter, public solver_geometric_transformation_type =9
 An geometric transformation solver. More...
 
integer(intg), parameter, public solver_cmiss_library =LIBRARY_CMISS_TYPE
 CMISS (internal) solver library. More...
 
integer(intg), parameter, public solver_petsc_library =LIBRARY_PETSC_TYPE
 PETSc solver library. More...
 
integer(intg), parameter, public solver_mumps_library =LIBRARY_MUMPS_TYPE
 MUMPS solver library. More...
 
integer(intg), parameter, public solver_superlu_library =LIBRARY_SUPERLU_TYPE
 SuperLU solver library. More...
 
integer(intg), parameter, public solver_spooles_library =LIBRARY_SPOOLES_TYPE
 Spooles solver library. More...
 
integer(intg), parameter, public solver_umfpack_library =LIBRARY_UMFPACK_TYPE
 UMFPACK solver library. More...
 
integer(intg), parameter, public solver_lusol_library =LIBRARY_LUSOL_TYPE
 LUSOL solver library. More...
 
integer(intg), parameter, public solver_essl_library =LIBRARY_ESSL_TYPE
 ESSL solver library. More...
 
integer(intg), parameter, public solver_lapack_library =LIBRARY_LAPACK_TYPE
 LAPACK solver library. More...
 
integer(intg), parameter, public solver_tao_library =LIBRARY_TAO_TYPE
 TAO solver library. More...
 
integer(intg), parameter, public solver_hypre_library =LIBRARY_HYPRE_TYPE
 Hypre solver library. More...
 
integer(intg), parameter, public solver_pastix_library =LIBRARY_PASTIX_TYPE
 PaStiX solver library. More...
 
integer(intg), parameter, public solver_linear_direct_solve_type =1
 Direct linear solver type. More...
 
integer(intg), parameter, public solver_linear_iterative_solve_type =2
 Iterative linear solver type. More...
 
integer(intg), parameter, public solver_direct_lu =1
 LU direct linear solver. More...
 
integer(intg), parameter, public solver_direct_cholesky =2
 Cholesky direct linear solver. More...
 
integer(intg), parameter, public solver_direct_svd =3
 SVD direct linear solver. More...
 
integer(intg), parameter, public solver_iterative_richardson =1
 Richardson iterative solver type. More...
 
integer(intg), parameter, public solver_iterative_chebyshev =2
 Chebyshev iterative solver type. More...
 
integer(intg), parameter, public solver_iterative_conjugate_gradient =3
 Conjugate gradient iterative solver type. More...
 
integer(intg), parameter, public solver_iterative_biconjugate_gradient =4
 Bi-conjugate gradient iterative solver type. More...
 
integer(intg), parameter, public solver_iterative_gmres =5
 Generalised minimum residual iterative solver type. More...
 
integer(intg), parameter, public solver_iterative_bicgstab =6
 Stabalised bi-conjugate gradient iterative solver type. More...
 
integer(intg), parameter, public solver_iterative_conjgrad_squared =7
 Conjugate gradient squared iterative solver type. More...
 
integer(intg), parameter, public solver_iterative_no_preconditioner =0
 No preconditioner type. More...
 
integer(intg), parameter, public solver_iterative_jacobi_preconditioner =1
 Jacobi preconditioner type. More...
 
integer(intg), parameter, public solver_iterative_block_jacobi_preconditioner =2
 Iterative block Jacobi preconditioner type. More...
 
integer(intg), parameter, public solver_iterative_sor_preconditioner =3
 Successive over relaxation preconditioner type. More...
 
integer(intg), parameter, public solver_iterative_incomplete_cholesky_preconditioner =4
 Incomplete Cholesky preconditioner type. More...
 
integer(intg), parameter, public solver_iterative_incomplete_lu_preconditioner =5
 Incomplete LU preconditioner type. More...
 
integer(intg), parameter, public solver_iterative_additive_schwarz_preconditioner =6
 Additive Schwrz preconditioner type. More...
 
integer(intg), parameter, public solver_nonlinear_newton =1
 Newton nonlinear solver type. More...
 
integer(intg), parameter, public solver_nonlinear_bfgs_inverse =2
 BFGS inverse nonlinear solver type. More...
 
integer(intg), parameter, public solver_nonlinear_sqp =3
 Sequential Quadratic Program nonlinear solver type. More...
 
integer(intg), parameter, public solver_nonlinear_quasi_newton =4
 Sequential Quasi-Newton nonlinear solver type. More...
 
integer(intg), parameter, public solver_quasi_newton_linesearch =1
 Quasi-Newton line search nonlinear solver type. More...
 
integer(intg), parameter, public solver_quasi_newton_trustregion =2
 Quasi-Newton trust region nonlinear solver type. More...
 
integer(intg), parameter, public solver_quasi_newton_lbfgs =1
 LBFGS Quasi-Newton type. More...
 
integer(intg), parameter, public solver_quasi_newton_goodbroyden =2
 "Good" Broyden Quasi-Newton type More...
 
integer(intg), parameter, public solver_quasi_newton_badbroyden =3
 "Bad" Broyden Quasi-Newton type More...
 
integer(intg), parameter, public solver_quasi_newton_linesearch_basic =1
 Simple damping line search. More...
 
integer(intg), parameter, public solver_quasi_newton_linesearch_l2 =2
 Secant line search over the L2 norm of the function. More...
 
integer(intg), parameter, public solver_quasi_newton_linesearch_cp =3
 Critical point secant line search. More...
 
integer(intg), parameter, public solver_quasi_newton_restart_none =1
 Never restart. More...
 
integer(intg), parameter, public solver_quasi_newton_restart_powell =2
 Restart based upon descent criteria. More...
 
integer(intg), parameter, public solver_quasi_newton_restart_periodic =3
 Restart after a fixed number of iterations. More...
 
integer(intg), parameter, public solver_quasi_newton_scale_none =1
 Don't scale the problem. More...
 
integer(intg), parameter, public solver_quasi_newton_scale_shanno =2
 Use Shanno scaling. More...
 
integer(intg), parameter, public solver_quasi_newton_scale_linesearch =3
 Scale based upon line search lambda. More...
 
integer(intg), parameter, public solver_quasi_newton_scale_jacobian =4
 Scale by inverting a previously computed Jacobian. More...
 
integer(intg), parameter, public solver_newton_linesearch =1
 Newton line search nonlinear solver type. More...
 
integer(intg), parameter, public solver_newton_trustregion =2
 Newton trust region nonlinear solver type. More...
 
integer(intg), parameter, public solver_newton_linesearch_nonorms =1
 No norms line search for Newton line search nonlinear solves. More...
 
integer(intg), parameter, public solver_newton_linesearch_linear =2
 Linear search for Newton line search nonlinear solves. More...
 
integer(intg), parameter, public solver_newton_linesearch_quadratic =3
 Quadratic search for Newton line search nonlinear solves. More...
 
integer(intg), parameter, public solver_newton_linesearch_cubic =4
 Cubic search for Newton line search nonlinear solves. More...
 
integer(intg), parameter, public solver_newton_jacobian_not_calculated =1
 The Jacobian values will not be calculated for the nonlinear equations set. More...
 
integer(intg), parameter, public solver_newton_jacobian_equations_calculated =2
 The Jacobian values will be calculated analytically for the nonlinear equations set. More...
 
integer(intg), parameter, public solver_newton_jacobian_fd_calculated =3
 The Jacobian values will be calculated using finite differences for the nonlinear equations set. More...
 
integer(intg), parameter, public solver_newton_convergence_petsc_default =1
 Petsc default convergence test. More...
 
integer(intg), parameter, public solver_newton_convergence_energy_norm =2
 Energy norm convergence test. More...
 
integer(intg), parameter, public solver_newton_convergence_differentiated_ratio =3
 Sum of differentiated ratios of unconstrained to constrained residuals convergence test. More...
 
integer(intg), parameter, public solver_dynamic_first_order =1
 Dynamic solver has first order terms. More...
 
integer(intg), parameter, public solver_dynamic_second_order =2
 Dynamic solver has second order terms. More...
 
integer(intg), parameter, public solver_dynamic_linear =1
 Dynamic solver has linear terms. More...
 
integer(intg), parameter, public solver_dynamic_nonlinear =2
 Dynamic solver has nonlinear terms. More...
 
integer(intg), parameter, public solver_dynamic_first_degree =1
 Dynamic solver uses a first degree polynomial for time interpolation. More...
 
integer(intg), parameter, public solver_dynamic_second_degree =2
 Dynamic solver uses a second degree polynomial for time interpolation. More...
 
integer(intg), parameter, public solver_dynamic_third_degree =3
 Dynamic solver uses a third degree polynomial for time interpolation. More...
 
integer(intg), parameter, public solver_dynamic_euler_scheme =1
 Euler (explicit) dynamic solver. More...
 
integer(intg), parameter, public solver_dynamic_backward_euler_scheme =2
 Backward Euler (implicit) dynamic solver. More...
 
integer(intg), parameter, public solver_dynamic_crank_nicolson_scheme =3
 Crank-Nicolson dynamic solver. More...
 
integer(intg), parameter, public solver_dynamic_galerkin_scheme =4
 Galerkin dynamic solver. More...
 
integer(intg), parameter, public solver_dynamic_zlamal_scheme =5
 Zlamal dynamic solver. More...
 
integer(intg), parameter, public solver_dynamic_second_degree_gear_scheme =6
 2nd degree Gear dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_second_degree_liniger1_scheme =7
 1st 2nd degree Liniger dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_second_degree_liniger2_scheme =8
 2nd 2nd degree Liniger dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_newmark1_scheme =9
 1st Newmark dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_newmark2_scheme =10
 2nd Newmark dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_newmark3_scheme =11
 3rd Newmark dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_third_degree_gear_scheme =12
 3rd degree Gear dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_third_degree_liniger1_scheme =13
 1st 3rd degree Liniger dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_third_degree_liniger2_scheme =14
 2nd 3rd degree Liniger dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_houbolt_scheme =15
 Houbolt dynamic solver. More...
 
integer(intg), parameter, public solver_dynamic_wilson_scheme =16
 Wilson dynamic solver. More...
 
integer(intg), parameter, public solver_dynamic_bossak_newmark1_scheme =17
 1st Bossak-Newmark dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_bossak_newmark2_scheme =18
 2nd Bossak-Newmark dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_hilbert_hughes_taylor1_scheme =19
 1st Hilbert-Hughes-Taylor dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_hilbert_hughes_taylor2_scheme =20
 1st Hilbert-Hughes-Taylor dynamic solver More...
 
integer(intg), parameter, public solver_dynamic_user_defined_scheme =21
 User specified degree and theta dynamic solver. More...
 
integer(intg), parameter, public solver_dae_differential_only =0
 Differential equations only. More...
 
integer(intg), parameter, public solver_dae_index_1 =1
 Index 1 differential-algebraic equation. More...
 
integer(intg), parameter, public solver_dae_index_2 =2
 Index 2 differential-algebraic equation. More...
 
integer(intg), parameter, public solver_dae_index_3 =3
 Index 3 differential-algebraic equation. More...
 
integer(intg), parameter, public solver_dae_euler =1
 Euler differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_dae_crank_nicolson =2
 Crank-Nicolson differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_dae_runge_kutta =3
 Runge-Kutta differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_dae_adams_moulton =4
 Adams-Moulton differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_dae_bdf =5
 General BDF differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_dae_rush_larson =6
 Rush-Larson differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_dae_external =7
 External (e.g., CellML generated) differential-algebraic equation solver. More...
 
integer(intg), parameter, public solver_dae_euler_forward =1
 Forward Euler differential equation solver. More...
 
integer(intg), parameter, public solver_dae_euler_backward =2
 Backward Euler differential equation solver. More...
 
integer(intg), parameter, public solver_dae_euler_improved =3
 Improved Euler differential equation solver. More...
 
integer(intg), parameter, public solver_solution_initialise_zero =0
 Initialise the solution by zeroing it before a solve. More...
 
integer(intg), parameter, public solver_solution_initialise_current_field =1
 Initialise the solution by copying in the current dependent field values. More...
 
integer(intg), parameter, public solver_solution_initialise_no_change =2
 Do not change the solution before a solve. More...
 
integer(intg), parameter, public solver_no_output =0
 No output from the solver routines. More...
 
integer(intg), parameter, public solver_progress_output =1
 Progress output from solver routines. More...
 
integer(intg), parameter, public solver_timing_output =2
 Timing output from the solver routines plus below. More...
 
integer(intg), parameter, public solver_solver_output =3
 Solver specific output from the solver routines plus below. More...
 
integer(intg), parameter, public solver_matrix_output =4
 Solver matrices output from the solver routines plus below. More...
 
integer(intg), parameter, public solver_sparse_matrices =1
 Use sparse solver matrices. More...
 
integer(intg), parameter, public solver_full_matrices =2
 Use fully populated solver matrices. More...
 

Detailed Description

This module handles all solver routines.

Function/Subroutine Documentation

subroutine, public solver_routines::cellml_equations_cellml_add ( type(cellml_equations_type), pointer  CELLML_EQUATIONS,
type(cellml_type), pointer  CELLML,
integer(intg), intent(out)  CELLML_INDEX,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Adds a CellML environment to a solvers CellML equations.

See also
OPENCMISS::CMISSCellMLEquationsCellMLAdd
Parameters
cellml_equationsA pointer the CellML equations to add the CellML environment to.
cellmlA pointer to the CellML environment to add
[out]cellml_indexOn return, the index of the added CellML environment.
[out]errThe error code
[out]errorThe error string

Definition at line 721 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

subroutine, public solver_routines::cellml_equations_create_finish ( type(cellml_equations_type), pointer  CELLML_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
subroutine, public solver_routines::cellml_equations_create_start ( type(solver_type), pointer  SOLVER,
type(cellml_equations_type), pointer  CELLML_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Starts the process of creating CellML equations.

Parameters
solverA pointer the solver to start the creation of CellML equations on
cellml_equationsOn return, A pointer the CellML equations. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 818 of file solver_routines.f90.

References cellml_equations_initialise(), base_routines::enters(), and base_routines::exits().

Referenced by biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), and reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup().

subroutine, public solver_routines::cellml_equations_destroy ( type(cellml_equations_type), pointer  CELLML_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Destroys the CellML equations.

Parameters
cellml_equationsA pointer the CellML equations to destroy.
[out]errThe error code
[out]errorThe error string

Definition at line 853 of file solver_routines.f90.

References cellml_equations_finalise(), base_routines::enters(), and base_routines::exits().

subroutine solver_routines::cellml_equations_finalise ( type(cellml_equations_type), pointer  CELLML_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalises the CellML equations and deallocates all memory.

Parameters
cellml_equationsA pointer the CellML equations to finalise.
[out]errThe error code
[out]errorThe error string

Definition at line 881 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by cellml_equations_destroy(), and cellml_equations_initialise().

subroutine solver_routines::cellml_equations_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialises the CellML equations for a solver.

Parameters
solverA pointer the solver to initialise the CellML equations for
[out]errThe error code
[out]errorThe error string

Definition at line 908 of file solver_routines.f90.

References cellml_equations_finalise(), base_routines::enters(), and base_routines::exits().

Referenced by cellml_equations_create_start().

subroutine, public solver_routines::solver_cellml_equations_get ( type(solver_type), pointer  SOLVER,
type(cellml_equations_type), pointer  CELLML_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns a pointer to the CellML equations for a solver.

See also
OPENCMISS::CMISSSolverCellMLEquationsGet
Parameters
solverA pointer to the solver to get the CellML equations for
cellml_equationsOn exit, a pointer to the specified CellML equations. Must not be associated on entry.
[out]errThe error code
[out]errorThe error string

Definition at line 947 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), and reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup().

subroutine solver_routines::solver_cellml_evaluate ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
type(cellml_type), pointer  CELLML,
integer(intg), intent(in)  N,
integer(intg), intent(in)  ONLY_ONE_MODEL_INDEX,
integer(intg), dimension(:), pointer  MODELS_DATA,
integer(intg), intent(in)  MAX_NUMBER_STATES,
real(dp), dimension(:), pointer  STATE_DATA,
integer(intg), intent(in)  MAX_NUMBER_PARAMETERS,
real(dp), dimension(:), pointer  PARAMETERS_DATA,
integer(intg), intent(in)  MAX_NUMBER_INTERMEDIATES,
real(dp), dimension(:), pointer  INTERMEDIATE_DATA,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Evaluate the CellML equations.

Parameters
cellml_evaluator_solverA pointer the CellML evaluator equation solver to evaluate
cellmlA pointer to the CellML environment to integrate the equations for.
[in]nThe number of degrees-of-freedom
[in]only_one_model_indexIf only one model is used in the models data the index of that model. 0 otherwise.
models_dataMODELS_DATA(dof_idx). The models data for the dof_idx'th dof.
[in]max_number_statesThe maximum number of state variables per dof
state_dataSTATE_DATA(state_idx,dof_idx). The state data for the state_idx'th state variable of the dof_idx'th dof. state_idx varies from 1..NUMBER_STATES.
[in]max_number_parametersThe maximum number of parameter variables per dof.
parameters_dataPARAMETERS_DATA(parameter_idx,dof_idx). The parameters data for the parameter_idx'th parameter variable of the dof_idx'th dof. parameter_idx varies from 1..NUMBER_PARAMETERS.
[in]max_number_intermediatesThe maximum number of intermediate variables per dof.
intermediate_dataINTERMEDIATE_DATA(intermediate_idx,dof_idx). The intermediate values data for the intermediate_idx'th intermediate variable of the dof_idx'th dof. intermediate_idx varies from 1..NUMBER_INTERMEDIATE
[out]errThe error code
[out]errorThe error string

Definition at line 1343 of file solver_routines.f90.

References cmiss_cellml::cellml_models_field_not_constant, base_routines::enters(), and base_routines::exits().

Referenced by solver_cellml_evaluator_solve().

subroutine solver_routines::solver_cellml_evaluator_create_finish ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a CellML evaluator solver.

Parameters
cellml_evaluator_solverA pointer to the CellML evaluator solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 985 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

subroutine, public solver_routines::solver_cellml_evaluator_finalise ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Finalise a CellML evaluator solver.

Parameters
cellml_evaluator_solverA pointer the CellML evaluator solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 1013 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_cellml_evaluator_initialise(), solver_finalise(), and solver_type_set().

subroutine solver_routines::solver_cellml_evaluator_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a CellML evaluator solver for a solver.

Parameters
solverA pointer the solver to initialise the CellML evaluator solver for
[out]errThe error code
[out]errorThe error string

Definition at line 1039 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_cellml_evaluator_finalise(), and solver_cmiss_library.

Referenced by solver_newton_cellml_evaluator_create(), and solver_type_set().

subroutine solver_routines::solver_cellml_evaluator_library_type_get ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a CellML evaluator solver.

Parameters
cellml_evaluator_solverA pointer the CellML evaluator solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the CellML evaluator solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 1078 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_library_type_get().

subroutine solver_routines::solver_cellml_evaluator_library_type_set ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a CellML evaluator solver.

Parameters
cellml_evaluator_solverA pointer the CellML evaluator solver to get the library type for.
[in]solver_library_typeThe type of library for the CellML evaluator solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 1107 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_cmiss_library.

Referenced by solver_library_type_set().

subroutine solver_routines::solver_cellml_evaluator_solve ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve a CellML evaluator solver.

Parameters
cellml_evaluator_solverA pointer the CellML evaluator solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 1201 of file solver_routines.f90.

References cmiss_cellml::cellml_cellml_to_field_update(), cmiss_cellml::cellml_field_to_cellml_update(), base_routines::enters(), base_routines::exits(), solver_cellml_evaluate(), and solver_cmiss_library.

Referenced by solver_solve().

subroutine solver_routines::solver_cellml_evaluator_time_get ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
real(dp), intent(out)  TIME,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the time for a CellML evaluator solver.

Parameters
cellml_evaluator_solverA pointer the CellML evaluator solver to get the time for.
[out]timeOn exit, the time for the CellML evaluator solver
[out]errThe error code
[out]errorThe error string

Definition at line 1144 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

subroutine solver_routines::solver_cellml_evaluator_time_set ( type(cellml_evaluator_solver_type), pointer  CELLML_EVALUATOR_SOLVER,
real(dp), intent(in)  TIME,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the time for a CellML evaluator solver.

Parameters
cellml_evaluator_solverA pointer the CellML evaluator solver to set the time for.
[in]timeThe time for the CellML evaluator solver to set
[out]errThe error code
[out]errorThe error string

Definition at line 1173 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

subroutine solver_routines::solver_create_finish ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a solver.

Parameters
solverA pointer the solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 1714 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solvers_create_finish().

subroutine solver_routines::solver_dae_adams_moulton_finalise ( type(adams_moulton_dae_solver_type), pointer  ADAMS_MOULTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise an Adams-Moulton differential-algebraic equation solver and deallocate all memory.

Parameters
adams_moulton_solverA pointer the Adams-Moulton differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 1752 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_adams_moulton_initialise(), solver_dae_finalise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_adams_moulton_initialise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise an Adams-Moulton solver for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to initialise an Adams-Moulton solver for
[out]errThe error code
[out]errorThe error string

Definition at line 1778 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_adams_moulton_finalise().

Referenced by solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_adams_moulton_solve ( type(adams_moulton_dae_solver_type), pointer  ADAMS_MOULTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using an Adams-Moulton differential-algebraic equation solver.

Parameters
adams_moulton_solverA pointer the Adams-Moulton differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 1820 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_solve().

subroutine solver_routines::solver_dae_bdf_finalise ( type(bdf_dae_solver_type), pointer  BDF_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a BDF differential-algebraic equation solver and deallocate all memory.

Parameters
bdf_solverA pointer the BDF differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 3411 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_bdf_initialise(), solver_dae_finalise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_bdf_initialise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a BDF solver for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to initialise a BDF solver for
[out]errThe error code
[out]errorThe error string

Definition at line 3437 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_bdf_finalise(), and solver_petsc_library.

Referenced by solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_bdf_integrate ( type(bdf_dae_solver_type), pointer  BDF_SOLVER,
type(cellml_type), pointer  CELLML,
integer(intg), intent(in)  N,
real(dp), intent(in)  START_TIME,
real(dp), intent(in)  END_TIME,
real(dp), intent(inout)  TIME_INCREMENT,
integer(intg), intent(in)  ONLY_ONE_MODEL_INDEX,
integer(intg), dimension(:), intent(in), pointer  MODELS_DATA,
integer(intg), intent(in)  MAX_NUMBER_STATES,
real(dp), dimension(:), intent(inout), pointer  STATE_DATA,
integer(intg), intent(in)  MAX_NUMBER_PARAMETERS,
real(dp), dimension(:), intent(inout), pointer  PARAMETERS_DATA,
integer(intg), intent(in)  MAX_NUMBER_INTERMEDIATES,
real(dp), dimension(:), intent(inout), pointer  INTERMEDIATE_DATA,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Integrate using a BDF differential-algebraic equation solver.

Parameters
bdf_solverA pointer the BDF differential-algebraic equation solver to integrate
cellmlA pointer to the CellML environment to integrate the equations for.
[in]nThe number of degrees-of-freedom
[in]start_timeThe start time for the integration
[in]end_timeThe end time for the integration
[in,out]time_incrementThe (initial) time increment for the integration
[in]only_one_model_indexIf only one model is used in the models data the index of that model. 0 otherwise.
[in]models_dataMODELS_DATA(dof_idx). The models data for the dof_idx'th dof.
[in]max_number_statesThe maximum number of state variables per dof
[in,out]state_dataSTATE_DATA(state_idx,dof_idx). The state data for the state_idx'th state variable of the dof_idx'th dof. state_idx varies from 1..NUMBER_STATES.
[in]max_number_parametersThe maximum number of parameter variables per dof.
[in,out]parameters_dataPARAMETERS_DATA(parameter_idx,dof_idx). The parameters data for the parameter_idx'th parameter variable of the dof_idx'th dof. parameter_idx varies from 1..NUMBER_PARAMETERS.
[in]max_number_intermediatesThe maximum number of intermediate variables per dof.
[in,out]intermediate_dataINTERMEDIATE_DATA(intermediate_idx,dof_idx). The intermediate values data for the intermediate_idx'th intermediate variable of the dof_idx'th dof. intermediate_idx varies from 1.NUMBER_INTERMEDIATE
[out]errThe error code
[out]errorThe error string

Definition at line 3594 of file solver_routines.f90.

References cmiss_cellml::cellml_models_field_not_constant, base_routines::diagnostic_output_type, base_routines::diagnostics1, base_routines::enters(), base_routines::exits(), cmisspetsc::petsc_tscreate(), cmisspetsc::petsc_tsfinalise(), cmisspetsc::petsc_tssetduration(), cmisspetsc::petsc_tssetexactfinaltime(), cmisspetsc::petsc_tssetinitialtimestep(), cmisspetsc::petsc_tssetproblemtype(), cmisspetsc::petsc_tssetrhsfunction(), cmisspetsc::petsc_tssetsolution(), cmisspetsc::petsc_tssettype(), cmisspetsc::petsc_tssolve(), cmisspetsc::petsc_tssundialssettolerance(), cmisspetsc::petsc_tssundialssettype(), cmisspetsc::petsc_vecassemblybegin(), cmisspetsc::petsc_vecassemblyend(), cmisspetsc::petsc_veccreateseq(), cmisspetsc::petsc_vecdestroy(), cmisspetsc::petsc_vecgetvalues(), cmisspetsc::petsc_vecsetvalues(), solver_daecellmlpetsccontextinitialise(), solver_daecellmlpetsccontextset(), and solver_petsc_library.

Referenced by solver_dae_bdf_solve().

subroutine solver_routines::solver_dae_bdf_solve ( type(bdf_dae_solver_type), pointer  BDF_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using a BDF differential-algebraic equation solver.

Parameters
bdf_solverA pointer the BDF differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 3765 of file solver_routines.f90.

References cmiss_cellml::cellml_cellml_to_field_update(), cmiss_cellml::cellml_field_to_cellml_update(), base_routines::enters(), base_routines::exits(), and solver_dae_bdf_integrate().

Referenced by solver_dae_solve().

subroutine solver_routines::solver_dae_crank_nicolson_finalise ( type(crank_nicolson_dae_solver_type), pointer  CRANK_NICOLSON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a Crank-Nicolson differential-algebraic equation solver and deallocate all memory.

Parameters
crank_nicolson_solverA pointer the Crank-Nicolson differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 3905 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_crank_nicolson_initialise(), solver_dae_finalise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_crank_nicolson_initialise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a Crank-Nicolson solver for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to initialise a Crank-Nicolson solver for
[out]errThe error code
[out]errorThe error string

Definition at line 3931 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_crank_nicolson_finalise().

Referenced by solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_crank_nicolson_solve ( type(crank_nicolson_dae_solver_type), pointer  CRANK_NICOLSON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using a Crank-Nicolson differential-algebraic equation solver.

Parameters
crank_nicolson_solverA pointer the Crank-Nicolson differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 3973 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_solve().

subroutine solver_routines::solver_dae_create_finish ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a differential-algebraic equation solver.

Parameters
dae_solverA pointer to the differential-algebraic equation solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 1848 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solverequations_boundaryconditionscreatefinish().

subroutine solver_routines::solver_dae_euler_backward_finalise ( type(backward_euler_dae_solver_type), pointer  BACKWARD_EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a backward Euler differential-algebraic equation and deallocate all memory.

Parameters
backward_euler_solverA pointer the backward Euler differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 1876 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_euler_backward_initialise(), solver_dae_euler_finalise(), and solver_dae_euler_solver_type_set().

subroutine solver_routines::solver_dae_euler_backward_initialise ( type(euler_dae_solver_type), pointer  EULER_DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a backward Euler solver for a differential-algebraic equation solver.

Parameters
euler_dae_solverA pointer the Euler differential-algebraic equation solver to initialise a backward Euler solver for
[out]errThe error code
[out]errorThe error string

Definition at line 1902 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_euler_backward_finalise().

Referenced by solver_dae_euler_solver_type_set().

subroutine solver_routines::solver_dae_euler_backward_solve ( type(backward_euler_dae_solver_type), pointer  BACKWARD_EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using a backward Euler differential-algebraic equation solver.

Parameters
backward_euler_solverA pointer the backward Euler differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 1944 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_euler_solve().

subroutine solver_routines::solver_dae_euler_finalise ( type(euler_dae_solver_type), pointer  EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise an Euler differential-algebraic equation solver and deallocate all memory.

Parameters
euler_solverA pointer the Euler differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 1972 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_euler_backward_finalise(), solver_dae_euler_forward_finalise(), and solver_dae_euler_improved_finalise().

Referenced by solver_dae_euler_initialise(), solver_dae_finalise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_euler_forward_finalise ( type(forward_euler_dae_solver_type), pointer  FORWARD_EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a forward Euler differential-algebraic equation and deallocate all memory.

Parameters
forward_euler_solverA pointer the forward Euler differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 2001 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_euler_finalise(), solver_dae_euler_forward_initialise(), and solver_dae_euler_solver_type_set().

subroutine solver_routines::solver_dae_euler_forward_initialise ( type(euler_dae_solver_type), pointer  EULER_DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a forward Euler solver for a differential-algebraic equation solver.

Parameters
euler_dae_solverA pointer the Euler differential-algebraic equation solver to initialise a forward Euler solver for
[out]errThe error code
[out]errorThe error string

Definition at line 2027 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_cmiss_library, and solver_dae_euler_forward_finalise().

Referenced by solver_dae_euler_initialise(), and solver_dae_euler_solver_type_set().

subroutine solver_routines::solver_dae_euler_forward_integrate ( type(forward_euler_dae_solver_type), pointer  FORWARD_EULER_SOLVER,
type(cellml_type), pointer  CELLML,
integer(intg), intent(in)  N,
real(dp), intent(in)  START_TIME,
real(dp), intent(in)  END_TIME,
real(dp), intent(inout)  TIME_INCREMENT,
integer(intg), intent(in)  ONLY_ONE_MODEL_INDEX,
integer(intg), dimension(:), pointer  MODELS_DATA,
integer(intg), intent(in)  MAX_NUMBER_STATES,
real(dp), dimension(:), pointer  STATE_DATA,
integer(intg), intent(in)  MAX_NUMBER_PARAMETERS,
real(dp), dimension(:), pointer  PARAMETERS_DATA,
integer(intg), intent(in)  MAX_NUMBER_INTERMEDIATES,
real(dp), dimension(:), pointer  INTERMEDIATE_DATA,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Integrate using a forward Euler differential-algebraic equation solver.

Parameters
forward_euler_solverA pointer the forward Euler differential-algebraic equation solver to integrate
cellmlA pointer to the CellML environment to integrate the equations for.
[in]nThe number of degrees-of-freedom
[in]start_timeThe start time for the integration
[in]end_timeThe end time for the integration
[in,out]time_incrementThe (initial) time increment for the integration
[in]only_one_model_indexIf only one model is used in the models data the index of that model. 0 otherwise.
models_dataMODELS_DATA(dof_idx). The models data for the dof_idx'th dof.
[in]max_number_statesThe maximum number of state variables per dof
state_dataSTATE_DATA(state_idx,dof_idx). The state data for the state_idx'th state variable of the dof_idx'th dof. state_idx varies from 1..NUMBER_STATES.
[in]max_number_parametersThe maximum number of parameter variables per dof.
parameters_dataPARAMETERS_DATA(parameter_idx,dof_idx). The parameters data for the parameter_idx'th parameter variable of the dof_idx'th dof. parameter_idx varies from 1..NUMBER_PARAMETERS.
[in]max_number_intermediatesThe maximum number of intermediate variables per dof.
intermediate_dataINTERMEDIATE_DATA(intermediate_idx,dof_idx). The intermediate values data for the intermediate_idx'th intermediate variable of the dof_idx'th dof. intermediate_idx varies from 1.NUMBER_INTERMEDIATE
[out]errThe error code
[out]errorThe error string

Definition at line 2071 of file solver_routines.f90.

References cmiss_cellml::cellml_models_field_not_constant, base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_euler_forward_solve().

subroutine solver_routines::solver_dae_euler_forward_solve ( type(forward_euler_dae_solver_type), pointer  FORWARD_EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using a forward Euler differential-algebraic equation solver.

Parameters
forward_euler_solverA pointer the forward Euler differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 2440 of file solver_routines.f90.

References cmiss_cellml::cellml_cellml_to_field_update(), cmiss_cellml::cellml_field_to_cellml_update(), base_routines::enters(), base_routines::exits(), and solver_dae_euler_forward_integrate().

Referenced by solver_dae_euler_solve().

subroutine solver_routines::solver_dae_euler_improved_finalise ( type(improved_euler_dae_solver_type), pointer  IMPROVED_EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise an improved Euler differential-algebaic equation and deallocate all memory.

Parameters
improved_euler_solverA pointer the improved Euler differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 2589 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_euler_finalise(), solver_dae_euler_improved_initialise(), and solver_dae_euler_solver_type_set().

subroutine solver_routines::solver_dae_euler_improved_initialise ( type(euler_dae_solver_type), pointer  EULER_DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise an improved Euler solver for a differential-algebraic equation solver.

Parameters
euler_dae_solverA pointer the Euler differential-algebraic equation solver to initialise an improved Euler solver for
[out]errThe error code
[out]errorThe error string

Definition at line 2615 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_euler_improved_finalise().

Referenced by solver_dae_euler_solver_type_set().

subroutine solver_routines::solver_dae_euler_improved_solve ( type(improved_euler_dae_solver_type), pointer  IMPROVED_EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using an improved Euler differential-algebraic equation solver.

Parameters
improved_euler_solverA pointer the improved Euler differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 2657 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_euler_solve().

subroutine solver_routines::solver_dae_euler_initialise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise an Euler solver for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to initialise an Euler solver for
[out]errThe error code
[out]errorThe error string

Definition at line 2685 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_euler_finalise(), solver_dae_euler_forward, and solver_dae_euler_forward_initialise().

Referenced by solver_dae_initialise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_euler_library_type_get ( type(euler_dae_solver_type), pointer  EULER_DAE_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for an Euler differential-algebraic equation solver.

Parameters
euler_dae_solverA pointer the differential-algebraic equation Euler solver to get the library type for
[out]solver_library_typeOn return, the type of library used for the differential-algebraic equation Euler solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 2730 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_euler_backward, solver_dae_euler_forward, and solver_dae_euler_improved.

Referenced by solver_dae_library_type_get().

subroutine solver_routines::solver_dae_euler_library_type_set ( type(euler_dae_solver_type), pointer  EULER_DAE_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for an Euler differential-algebraic equation solver.

Parameters
euler_dae_solverA pointer the Euler differential-algebraic equation solver to set the library type for
[in]solver_library_typeThe type of library for the Euler differential-algebraic equation solver to set
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 2789 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_cmiss_library, solver_dae_euler_backward, solver_dae_euler_forward, solver_dae_euler_improved, and solver_petsc_library.

subroutine solver_routines::solver_dae_euler_solve ( type(euler_dae_solver_type), pointer  EULER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using an Euler differential-algebraic equation solver.

Parameters
euler_solverA pointer the Euler differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 2875 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_euler_backward, solver_dae_euler_backward_solve(), solver_dae_euler_forward, solver_dae_euler_forward_solve(), solver_dae_euler_improved, and solver_dae_euler_improved_solve().

Referenced by solver_dae_solve().

subroutine, public solver_routines::solver_dae_euler_solver_type_get ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  DAE_EULER_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the solve type for an Euler differential-algebraic equation solver.

Parameters
solverA pointer the Euler differential equation solver to get type for
[out]dae_euler_typeOn return, the type of Euler solver for the Euler differential-algebraic equation to set
See also
SOLVER_ROUTINES::EulerDAESolverTypes,SOLVER_ROUTINES.
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 2915 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_euler, and solver_dae_type.

subroutine, public solver_routines::solver_dae_euler_solver_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  DAE_EULER_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the solve type for an Euler differential-algebraic equation solver.

Parameters
solverA pointer the Euler differential equation solver to set type for
[in]dae_euler_typeThe type of Euler solver for the Euler differential-algebraic equation to set
See also
SOLVER_ROUTINES::EulerDAESolverTypes,SOLVER_ROUTINES.
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 2969 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_euler, solver_dae_euler_backward, solver_dae_euler_backward_finalise(), solver_dae_euler_backward_initialise(), solver_dae_euler_forward, solver_dae_euler_forward_finalise(), solver_dae_euler_forward_initialise(), solver_dae_euler_improved, solver_dae_euler_improved_finalise(), solver_dae_euler_improved_initialise(), and solver_dae_type.

subroutine solver_routines::solver_dae_external_finalise ( type(external_dae_solver_type), pointer  EXTERNAL_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise an external differential-algebraic equation solver and deallocate all memory.

Parameters
external_solverA pointer the external differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 4001 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_external_initialise(), solver_dae_finalise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_external_initialise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise an external solver for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to initialise an external solver for
[out]errThe error code
[out]errorThe error string

Definition at line 4027 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_external_finalise().

Referenced by solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_external_solve ( type(external_dae_solver_type), pointer  EXTERNAL_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using an external differential-algebraic equation solver.

Parameters
external_solverA pointer the external differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 4068 of file solver_routines.f90.

References cmiss_cellml::cellml_cellml_to_field_update(), cmiss_cellml::cellml_field_to_cellml_update(), base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_solve().

subroutine solver_routines::solver_dae_finalise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a differential-algebraic equation solver and deallocate all memory.

Parameters
dae_solverA pointer the differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 3052 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_adams_moulton_finalise(), solver_dae_bdf_finalise(), solver_dae_crank_nicolson_finalise(), solver_dae_euler_finalise(), solver_dae_external_finalise(), solver_dae_runge_kutta_finalise(), and solver_dae_rush_larson_finalise().

Referenced by solver_dae_initialise(), solver_finalise(), and solver_type_set().

subroutine solver_routines::solver_dae_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a differential-algebraic equation solver for a solver.

Parameters
solverA pointer the solver to initialise the differential-algebraic equation solver for
[out]errThe error code
[out]errorThe error string

Definition at line 3085 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_euler, solver_dae_euler_initialise(), and solver_dae_finalise().

Referenced by solver_type_set().

subroutine solver_routines::solver_dae_library_type_get ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to get the library type for
[out]solver_library_typeOn return, the type of library used for the differential-algebraic equation solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 3139 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_adams_moulton, solver_dae_bdf, solver_dae_crank_nicolson, solver_dae_euler, solver_dae_euler_library_type_get(), solver_dae_external, solver_dae_runge_kutta, and solver_dae_rush_larson.

Referenced by solver_library_type_get().

subroutine solver_routines::solver_dae_library_type_set ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to set the library type for
[in]solver_library_typeThe type of library for the differential-algebraic equation solver to set
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 3224 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_cmiss_library, solver_dae_adams_moulton, solver_dae_bdf, solver_dae_crank_nicolson, solver_dae_euler, solver_dae_euler_backward, solver_dae_euler_forward, solver_dae_euler_improved, solver_dae_external, solver_dae_runge_kutta, solver_dae_rush_larson, and solver_petsc_library.

Referenced by solver_library_type_set().

subroutine solver_routines::solver_dae_runge_kutta_finalise ( type(runge_kutta_dae_solver_type), pointer  RUNGE_KUTTA_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a Runge-Kutta differential-algebraic equation solver and deallocate all memory.

Parameters
runge_kutta_solverA pointer the Runge-Kutta differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 4585 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_finalise(), solver_dae_runge_kutta_initialise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_runge_kutta_initialise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a Runge-Kutta solver for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to initialise a Runge-Kutta solver for
[out]errThe error code
[out]errorThe error string

Definition at line 4611 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_runge_kutta_finalise().

Referenced by solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_runge_kutta_solve ( type(runge_kutta_dae_solver_type), pointer  RUNGE_KUTTA_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using a Runge-Kutta differential-algebraic equation solver.

Parameters
runge_kutta_solverA pointer the Runge-Kutta differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 4652 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_solve().

subroutine solver_routines::solver_dae_rush_larson_finalise ( type(rush_larson_dae_solver_type), pointer  RUSH_LARSON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a Rush-Larson differential-algebraic equation solver and deallocate all memory.

Parameters
rush_larson_solverA pointer the Rush-Larson differential-algebraic equation solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 4680 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_finalise(), solver_dae_rush_larson_initialise(), and solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_rush_larson_initialise ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise an Rush-Larson solver for a differential-algebraic equation solver.

Parameters
dae_solverA pointer the differential-algebraic equation solver to initialise a Rush-Larson solver for
[out]errThe error code
[out]errorThe error string

Definition at line 4706 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_rush_larson_finalise().

Referenced by solver_dae_solver_type_set().

subroutine solver_routines::solver_dae_rush_larson_solve ( type(rush_larson_dae_solver_type), pointer  RUSH_LARSON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve using a Rush-Larson differential-algebraic equation solver.

Parameters
rush_larson_solverA pointer the Rush-Larson differential-algebraic equation solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 4747 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_dae_solve().

subroutine solver_routines::solver_dae_solve ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine, public solver_routines::solver_dae_solver_type_get ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  DAE_SOLVE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the solve type for an differential-algebraic equation solver.

Parameters
solverA pointer the solver to get the differential-algebraic equation solver type for
[out]dae_solve_typeOn return, the type of solver for the differential-algebraic equation to set
See also
SOLVER_ROUTINES::DAESolverTypes,SOLVER_ROUTINES.
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 4868 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_type.

subroutine, public solver_routines::solver_dae_solver_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  DAE_SOLVE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
subroutine, public solver_routines::solver_dae_time_step_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  TIME_STEP,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Set/change the (initial) time step size for a differential-algebraic equation solver.

Parameters
solverA pointer the differential-algebraic equation solver to set the times for
[in]time_stepThe (initial) time step for the differential-algebraic equation solver
[out]errThe error code
[out]errorThe error string

Definition at line 5047 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dae_type, and constants::zero_tolerance.

Referenced by navier_stokes_equations_routines::NAVIER_STOKES_PRE_SOLVE::navier_stokes_pre_solve().

subroutine, public solver_routines::solver_dae_times_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  START_TIME,
real(dp), intent(in)  END_TIME,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Set/change the times for a differential-algebraic equation solver.

Parameters
solverA pointer the differential-algebraic equation solver to set the times for
[in]start_timeThe start time for the differential equation solver
[in]end_timeThe end time for the differential equation solver
[out]errThe error code
[out]errorThe error string

Definition at line 4999 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dae_type.

Referenced by biodomain_equation_routines::biodomain_pre_solve(), finite_elasticity_routines::finite_elasticity_pre_solve(), navier_stokes_equations_routines::NAVIER_STOKES_PRE_SOLVE::navier_stokes_pre_solve(), and reaction_diffusion_equation_routines::REACTION_DIFFUSION_PRE_SOLVE::reaction_diffusion_pre_solve().

subroutine solver_routines::solver_daecellmlpetsccontextfinalise ( type(cellmlpetsccontexttype), pointer  ctx,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)
private

Finalise a CellML PETSc solver context.

Parameters
ctxA pointer the CellML-PETSc solver context to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 3477 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_daecellmlpetsccontextinitialise(), and solver_daecellmlpetsccontextset().

subroutine solver_routines::solver_daecellmlpetsccontextinitialise ( type(cellmlpetsccontexttype), intent(out), pointer  ctx,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)
private

Initialise a CellML PETSc context.

Parameters
[out]ctxA pointer to CellML PETSc context to initialise
[out]errThe error code
[out]errorThe error string

Definition at line 3506 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_daecellmlpetsccontextfinalise().

Referenced by solver_dae_bdf_integrate().

subroutine solver_routines::solver_daecellmlpetsccontextset ( type(cellmlpetsccontexttype), intent(in), pointer  ctx,
type(solver_type), intent(in), pointer  solver,
type(cellml_type), intent(in), pointer  cellml,
integer(intg), intent(in)  dofIdx,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)
private

Set a CellML PETSc context.

Parameters
[in]ctxA pointer to initialise a CELLML_PETSC_CONTEXT
[in]solverA pointer to the solver to set to ctx
[in]cellmlA pointer to the CellML environment to set to ctx
[in]dofidxThe DOF index of the cellml-petsc context
[out]errThe error code
[out]errorThe error string

Definition at line 3543 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_daecellmlpetsccontextfinalise().

Referenced by solver_dae_bdf_integrate().

subroutine, public solver_routines::solver_daecellmlrhsevaluate ( type(cellml_model_type), pointer  model,
real(dp), intent(in)  time,
integer(intg), intent(in)  stateStartIdx,
integer(intg), intent(in)  stateDataOffset,
real(dp), dimension(:), pointer  stateData,
integer(intg), intent(in)  parameterStartIdx,
integer(intg), intent(in)  parameterDataOffset,
real(dp), dimension(:), pointer  parameterData,
integer(intg), intent(in)  intermediateStartIdx,
integer(intg), intent(in)  intermediateDataOffset,
real(dp), dimension(:), pointer  intermediateData,
integer(intg), intent(in)  rateStartIdx,
integer(intg), intent(in)  rateDataOffset,
real(dp), dimension(:), pointer  rateData,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Integrate using a forward Euler differential-algebraic equation solver.

Parameters
modelThe CellML model to evaluate
[in]timeThe time to evaluate the CellML model at
[in]statestartidxThe state start data offset.
[in]statedataoffsetThe offset to the next state data
statedataA pointer to the state data
[in]parameterstartidxThe parameter start data offset.
[in]parameterdataoffsetThe offset to the next parameters data
parameterdataA pointer to the parameters data
[in]intermediatestartidxThe intermediate start data offset.
[in]intermediatedataoffsetThe offset to the next intermediate data
intermediatedataA pointer to the intermediate data
[in]ratestartidxThe rate start data offset.
[in]ratedataoffsetThe offset to the next rates data
ratedataOn exit, the rate data.
[out]errThe error code
[out]errorThe error string

Definition at line 4220 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

subroutine, public solver_routines::solver_destroy ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Destroys a solver.

Parameters
solverA pointer to the solver to destroy
[out]errThe error code
[out]errorThe error string

Definition at line 5093 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

subroutine, public solver_routines::solver_dynamic_ale_set ( type(solver_type), pointer  SOLVER,
logical  ALE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the ALE flag for a dynamic solver.

Parameters
solverA pointer to the dynamic solver to set the theta value for
aleThe ALE flag for a dynamic solver
[out]errThe error code
[out]errorThe error string

Definition at line 6775 of file solver_routines.f90.

References solver_dynamic_type.

subroutine solver_routines::solver_dynamic_create_finish ( type(dynamic_solver_type), pointer  DYNAMIC_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine, public solver_routines::solver_dynamic_degree_get ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  DEGREE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the degree of the polynomial used to interpolate time for a dynamic solver.

Parameters
solverA pointer to the dynamic solver to get the degree for
[out]degreeOn return, the degree of the polynomial used for time interpolation in a dynamic solver
See also
SOLVER_ROUTINES::DynamicDegreeTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 5441 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dynamic_type.

subroutine, public solver_routines::solver_dynamic_degree_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  DEGREE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the degree of the polynomial used to interpolate time for a dynamic solver.

Parameters
solverA pointer to the dynamic solver to set the theta value for
[in]degreeThe degree of the polynomial used for time interpolation in a dynamic solver
See also
SOLVER_ROUTINES::DynamicDegreeTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 5484 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_dynamic_first_degree, solver_dynamic_second_degree, solver_dynamic_third_degree, and solver_dynamic_type.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), fsi_routines::fsi_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), solver_dynamic_scheme_set(), and stokes_equations_routines::stokes_problem_setup().

recursive subroutine solver_routines::solver_dynamic_finalise ( type(dynamic_solver_type), pointer  DYNAMIC_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a dynamic solver and deallocates all memory.

Parameters
dynamic_solverA pointer the dynamic solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 5564 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_finalise().

Referenced by solver_finalise(), and solver_type_set().

subroutine solver_routines::solver_dynamic_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a dynamic solver for a solver.

Parameters
solverA pointer the solver to initialise the dynamic solver for
[out]errThe error code
[out]errorThe error string

Definition at line 5596 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), solver_cmiss_library, solver_dynamic_crank_nicolson_scheme, solver_dynamic_first_degree, solver_dynamic_first_order, solver_dynamic_linear, and solver_dynamic_linearity_type_set().

Referenced by solver_type_set().

subroutine solver_routines::solver_dynamic_library_type_get ( type(dynamic_solver_type), pointer  DYNAMIC_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a dynamic solver.

Parameters
dynamic_solverA pointer the dynamic solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the dynamic solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 5653 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

Referenced by solver_library_type_get().

subroutine solver_routines::solver_dynamic_library_type_set ( type(dynamic_solver_type), pointer  DYNAMIC_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a dynamic solver.

Parameters
dynamic_solverA pointer the dynamic solver to get the library type for.
[in]solver_library_typeThe type of library for the dynamic solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 5682 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_cmiss_library.

Referenced by solver_library_type_set().

subroutine, public solver_routines::solver_dynamic_linear_solver_get ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the linear solver associated with a dynamic solver.

See also
OPENCMISS::CMISSSolverDynamicLinearSolverGet
Parameters
solverA pointer the dynamic solver to get the linear solver for
linear_solverOn exit, a pointer the linear solver linked to the dynamic solver. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 5885 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dynamic_type.

subroutine, public solver_routines::solver_dynamic_linearity_type_get ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  LINEARITY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the linearity type for the dynamic solver.

See also
OPENCMISS::CMISSSolverDynamicLinearityTypeGet
Parameters
solverA pointer the solver to get the dynamic linearity type for
[out]linearity_typeOn return, the type of linearity
See also
SOLVER_ROUTINES_EquationLinearityTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 5719 of file solver_routines.f90.

References base_routines::enters(), and base_routines::exits().

subroutine, public solver_routines::solver_dynamic_linearity_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  LINEARITY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
subroutine solver_routines::solver_dynamic_mean_predicted_calculate ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Copies the current to previous time-step, calculates mean predicted values, predicted values and previous residual values.

Parameters
solverA pointer to the solver
[out]errThe error code
[out]errorThe error string

Definition at line 5930 of file solver_routines.f90.

References base_routines::enters(), solver_dynamic_first_degree, solver_dynamic_first_order, solver_dynamic_nonlinear, solver_dynamic_second_degree, solver_dynamic_second_order, and solver_dynamic_third_degree.

Referenced by solver_dynamic_solve().

subroutine, public solver_routines::solver_dynamic_nonlinear_solver_get ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the nonlinear solver associated with a dynamic solver.

Parameters
solverA pointer the dynamic solver to get the linear solver for
nonlinear_solverOn exit, a pointer the linear solver linked to the dynamic solver. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 5839 of file solver_routines.f90.

References base_routines::enters(), base_routines::exits(), and solver_dynamic_type.

subroutine, public solver_routines::solver_dynamic_order_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  ORDER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the order for a dynamic solver.

Parameters
solverA pointer to the dynamic solver to set the theta value for
[in]orderThe order of the dynamic solver
See also
SOLVER_ROUTINES::DynamicOrderTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 6327 of file solver_routines.f90.

References solver_dynamic_first_degree, solver_dynamic_first_order, solver_dynamic_second_order, and solver_dynamic_type.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), fsi_routines::fsi_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), solver_dynamic_scheme_set(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solver_dynamic_restart_get ( type(solver_type), pointer  SOLVER,
logical, intent(out)  RESTART,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the restart value for a dynamic solver.

Parameters
solverA pointer to the dynamic solver to get the degree for
[out]restartOn return, the restart value
[out]errThe error code
[out]errorThe error string

Definition at line 6206 of file solver_routines.f90.

References solver_dynamic_type.

subroutine, public solver_routines::solver_dynamic_restart_set ( type(solver_type), pointer  SOLVER,
logical, intent(in)  RESTART,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the restart value for a dynamic solver.

Parameters
solverA pointer to the dynamic solver to set the theta value for
[in]restartThe restart value to be set
[out]errThe error code
[out]errorThe error string

Definition at line 6249 of file solver_routines.f90.

References solver_dynamic_type.

Referenced by biodomain_equation_routines::biodomain_equation_problem_setup(), and bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup().

subroutine, public solver_routines::solver_dynamic_scheme_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SCHEME,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the scheme for a dynamic solver.

See also
OPENCMISS::CMISSSolverDynamicSchemeSet
Parameters
solverA pointer to the dynamic solver to set the scheme for
[in]schemeThe scheme used for a dynamic solver
See also
SOLVER_ROUTINES::DynamicSchemeTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 6384 of file solver_routines.f90.

References solver_dynamic_backward_euler_scheme, solver_dynamic_bossak_newmark1_scheme, solver_dynamic_bossak_newmark2_scheme, solver_dynamic_crank_nicolson_scheme, solver_dynamic_degree_set(), solver_dynamic_euler_scheme, solver_dynamic_first_degree, solver_dynamic_first_order, solver_dynamic_galerkin_scheme, solver_dynamic_hilbert_hughes_taylor1_scheme, solver_dynamic_hilbert_hughes_taylor2_scheme, solver_dynamic_houbolt_scheme, solver_dynamic_newmark1_scheme, solver_dynamic_newmark2_scheme, solver_dynamic_newmark3_scheme, solver_dynamic_order_set(), solver_dynamic_second_degree, solver_dynamic_second_degree_gear_scheme, solver_dynamic_second_degree_liniger1_scheme, solver_dynamic_second_degree_liniger2_scheme, solver_dynamic_second_order, solver_dynamic_third_degree, solver_dynamic_third_degree_gear_scheme, solver_dynamic_third_degree_liniger1_scheme, solver_dynamic_third_degree_liniger2_scheme, solver_dynamic_type, solver_dynamic_user_defined_scheme, solver_dynamic_wilson_scheme, and solver_dynamic_zlamal_scheme.

Referenced by advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), fsi_routines::fsi_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine solver_routines::solver_dynamic_solve ( type(dynamic_solver_type), pointer  DYNAMIC_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine solver_routines::solver_dynamic_theta_set_dp ( type(solver_type), pointer  SOLVER,
real(dp), dimension(:), intent(in)  THETA,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the theta value for a dynamic solver.

See also
OPENCMISS::CMISSSolverDynamicThetaSet
Parameters
solverA pointer to the dynamic solver to set the theta value for
[in]thetaTHEATA(degree_idx). The theta value to set for the degree_idx-1'th polynomial
[out]errThe error code
[out]errorThe error string

Definition at line 6715 of file solver_routines.f90.

References solver_dynamic_type.

Referenced by solver_dynamic_theta_set_dp1().

subroutine solver_routines::solver_dynamic_theta_set_dp1 ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  THETA,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes a single theta value for a dynamic solver.

See also
OPENCMISS::CMISSSolverDynamicThetaSet
Parameters
solverA pointer to the dynamic solver to set the theta value for
[in]thetaThe theta value to set for the first degree polynomial
[out]errThe error code
[out]errorThe error string

Definition at line 6691 of file solver_routines.f90.

References solver_dynamic_theta_set_dp().

subroutine, public solver_routines::solver_dynamic_times_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  CURRENT_TIME,
real(dp), intent(in)  TIME_INCREMENT,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the dynamic times for a dynamic solver.

See also
OPENCMISS::CMISSSolverDynamicTimesSet
Parameters
solverA pointer to the dynamic solver to set the times for
[in]current_timeThe current time to set
[in]time_incrementThe time increment to set
[out]errThe error code
[out]errorThe error string

Definition at line 6863 of file solver_routines.f90.

References solver_dynamic_type.

subroutine, public solver_routines::solver_dynamic_update_bc_set ( type(solver_type), pointer  SOLVER,
logical  UPDATE_BC,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the bc flag for a dynamic solver.

Parameters
solverA pointer to the dynamic solver to set the theta value for
update_bcThe UPDATE_BC flag for a dynamic solver
[out]errThe error code
[out]errorThe error string

Definition at line 6819 of file solver_routines.f90.

References solver_dynamic_type.

subroutine solver_routines::solver_eigenproblem_create_finish ( type(eigenproblem_solver_type), pointer  EIGENPROBLEM_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a eigenproblem solver.

Parameters
eigenproblem_solverA pointer to the eigenproblem solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 6911 of file solver_routines.f90.

Referenced by solverequations_boundaryconditionscreatefinish().

subroutine solver_routines::solver_eigenproblem_finalise ( type(eigenproblem_solver_type), pointer  EIGENPROBLEM_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a eigenproblem solver for a solver.

Parameters
eigenproblem_solverA pointer the eigenproblem solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 6939 of file solver_routines.f90.

Referenced by solver_eigenproblem_initialise(), solver_finalise(), and solver_type_set().

subroutine solver_routines::solver_eigenproblem_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a eigenproblem solver for a solver.

Parameters
solverA pointer the solver to initialise the eigenproblem solver for
[out]errThe error code
[out]errorThe error string

Definition at line 6965 of file solver_routines.f90.

References solver_eigenproblem_finalise(), and solver_petsc_library.

Referenced by solver_type_set().

subroutine solver_routines::solver_eigenproblem_library_type_get ( type(eigenproblem_solver_type), pointer  EIGENPROBLEM_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for an eigenproblem solver.

Parameters
eigenproblem_solverA pointer the eigenproblem solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the eigenproblem solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 7004 of file solver_routines.f90.

Referenced by solver_library_type_get().

subroutine solver_routines::solver_eigenproblem_library_type_set ( type(eigenproblem_solver_type), pointer  EIGENPROBLEM_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for an eigenproblem solver.

Parameters
eigenproblem_solverA pointer the eigenproblem solver to get the library type for.
[in]solver_library_typeThe type of library for the eigenproblem solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 7033 of file solver_routines.f90.

References solver_cmiss_library.

Referenced by solver_library_type_set().

subroutine solver_routines::solver_eigenproblem_solve ( type(eigenproblem_solver_type), pointer  EIGENPROBLEM_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve a eigenproblem solver.

Parameters
eigenproblem_solverA pointer the eigenproblem solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 7099 of file solver_routines.f90.

Referenced by solver_solve().

subroutine solver_routines::solver_eigenproblemmatriceslibrarytypeget ( type(eigenproblem_solver_type), pointer  EIGENPROBLEM_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for an eigenproblem solver matrices.

Parameters
eigenproblem_solverA pointer the eigenproblem solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the eigenproblem solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 7070 of file solver_routines.f90.

Referenced by solver_matrices_library_type_get().

subroutine, public solver_routines::solver_equations_boundary_conditions_get ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
type(boundary_conditions_type), pointer  BOUNDARY_CONDITIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Gets the boundary conditions for solver equations.

See also
OPENCMISS_CMISSSolverEquationsBoundaryConditionsGet
Parameters
solver_equationsA pointer to the solver equations to get the boundary conditions for
boundary_conditionsOn exit, a pointer to the boundary conditions for the specified solver equations. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 7127 of file solver_routines.f90.

subroutine, public solver_routines::solver_equations_create_finish ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Finishes the process of creating solver equations.

Parameters
solver_equationsA pointer the solver equations to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 7166 of file solver_routines.f90.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solver_equations_create_start ( type(solver_type), pointer  SOLVER,
type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Starts the process of creating solver equations.

Parameters
solverA pointer the solver to start the creation of solver equations on
solver_equationsOn return, A pointer the solver equations. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 7209 of file solver_routines.f90.

References solver_dae_type, solver_dynamic_type, solver_eigenproblem_type, solver_equations_initialise(), solver_linear_type, and solver_nonlinear_type.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solver_equations_destroy ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Destroys the solver equations.

Parameters
solver_equationsA pointer the solver equations to destroy.
[out]errThe error code
[out]errorThe error string

Definition at line 7271 of file solver_routines.f90.

References solver_equations_finalise().

Referenced by control_loop_routines::control_loop_solver_equations_destroy().

subroutine, public solver_routines::solver_equations_equations_set_add ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
type(equations_set_type), pointer  EQUATIONS_SET,
integer(intg), intent(out)  EQUATIONS_SET_INDEX,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Adds equations sets to solver equations.

See also
OPENCMISS::CMISSSolverEquationsEquationsSetAdd
Parameters
solver_equationsA pointer the solver equations to add the equations set to.
equations_setA pointer to the equations set to add
[out]equations_set_indexOn exit, the index of the equations set that has been added
[out]errThe error code
[out]errorThe error string

Definition at line 7299 of file solver_routines.f90.

subroutine solver_routines::solver_equations_finalise ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalises the solver equations and deallocates all memory.

Parameters
solver_equationsA pointer the solver equations to finalise.
[out]errThe error code
[out]errorThe error string

Definition at line 7445 of file solver_routines.f90.

Referenced by solver_equations_destroy(), solver_equations_initialise(), and solver_finalise().

subroutine solver_routines::solver_equations_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialises the solver equations for a solver.

Parameters
solverA pointer the solver to initialise the solver for
[out]errThe error code
[out]errorThe error string

Definition at line 7474 of file solver_routines.f90.

References solver_equations_finalise(), and solver_sparse_matrices.

Referenced by solver_equations_create_start().

subroutine, public solver_routines::solver_equations_interface_condition_add ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
type(interface_condition_type), pointer  INTERFACE_CONDITION,
integer(intg), intent(out)  INTERFACE_CONDITION_INDEX,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Adds an interface condition to the solver equations.

See also
OPENCMISS::CMISSSolverEquationsInterfaceConditionAdd
Parameters
solver_equationsA pointer the solver equations to add the interface condition to.
interface_conditionA pointer to the interface condition to add
[out]interface_condition_indexOn exit, the index of the interface condition that has been added
[out]errThe error code
[out]errorThe error string

Definition at line 7516 of file solver_routines.f90.

subroutine, public solver_routines::solver_equations_linearity_type_set ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(in)  LINEARITY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the linearity type for solver equations.

Parameters
solver_equationsA pointer the solver equations to set the linearity type for
[in]linearity_typeThe type of linearity to be set
See also
SOLVER_ROUTINES_EquationLinearityTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 7577 of file solver_routines.f90.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solver_equations_sparsity_type_set ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(in)  SPARSITY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the sparsity type for solver equations.

See also
OPENCMISS::CMISSSolverEquationsSpartsityTypeSet
Parameters
solver_equationsA pointer the solver equations to set the sparsity type for
[in]sparsity_typeThe type of solver equations sparsity to be set
See also
SOLVER_ROUTINES::SparsityTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 7734 of file solver_routines.f90.

References solver_full_matrices, and solver_sparse_matrices.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solver_equations_time_dependence_type_set ( type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(in)  TIME_DEPENDENCE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the time dependence type for solver equations.

Parameters
solver_equationsA pointer the solver equations to set the sparsity type for
[in]time_dependence_typeThe type of time dependence to be set
See also
SOLVER_ROUTINES_EquationTimeDependenceTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 7788 of file solver_routines.f90.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

recursive subroutine solver_routines::solver_finalise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine, public solver_routines::solver_geometrictransformationarbitrarypathset ( type(solver_type), pointer  solver,
logical, intent(in)  arbitraryPath,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Set the arbitrary path logical for geometric transformation solver.

Parameters
solverA pointer the solver to set the field for
[in]arbitrarypath.TRUE. if the the transformation has an arbitrary path, .FALSE. if the path is uni-directional
[out]errThe error code
[out]errorThe error string

Definition at line 8147 of file solver_routines.f90.

subroutine, public solver_routines::solver_geometrictransformationclear ( type(solver_type), pointer  solver,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Clear transformation for a geometric transformation solver.

Parameters
solverA pointer the solver to set the field for
[out]errThe error code
[out]errorThe error string

Definition at line 8181 of file solver_routines.f90.

subroutine, public solver_routines::solver_geometrictransformationfieldset ( type(solver_type), pointer  solver,
type(field_type), pointer  field,
integer(intg), intent(in)  variableType,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Set the field and field variable type for geometric transformation solver.

Parameters
solverA pointer the solver to set the field for
fieldA pointer to the field to transformed
[in]variabletypeThe variable type of the field to be transformed
[out]errThe error code
[out]errorThe error string

Definition at line 8221 of file solver_routines.f90.

subroutine solver_routines::solver_geometrictransformationfinalise ( type(geometrictransformationsolvertype), pointer  geometricTransformationSolver,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)
private

Finalise a geometric transformation solver for a solver.

Parameters
geometrictransformationsolverA pointer the linear solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 8581 of file solver_routines.f90.

Referenced by solver_finalise(), solver_geometrictransformationinitialise(), and solver_type_set().

subroutine solver_routines::solver_geometrictransformationinitialise ( type(solver_type), pointer  solver,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)
private

Initialise a geometric transformation solver for a solver.

Parameters
solverA pointer the solver to initialise the geometric transformation solver for
[out]errThe error code
[out]errorThe error string

Definition at line 8615 of file solver_routines.f90.

References solver_geometrictransformationfinalise().

Referenced by solver_type_set().

subroutine, public solver_routines::solver_geometrictransformationmatrixset ( type(solver_type), pointer  solver,
real(dp), dimension(:,:), intent(in)  matrix,
integer(intg), intent(in)  incrementIdx,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Set the full transformation matrix for a geometric transformation at a load increment.

Parameters
solverA pointer the solver to set the field for
[in]matrixThe full transformation matrix to set
[in]incrementidxThe load increment index
[out]errThe error code
[out]errorThe error string

Definition at line 8296 of file solver_routines.f90.

subroutine, public solver_routines::solver_geometrictransformationnumberofloadincrementsset ( type(solver_type), pointer  solver,
integer(intg), intent(in)  numberOfIncrements,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Set the number of load increments for geometric transformation solver.

Parameters
solverA pointer the solver to set the field for
[in]numberofincrementsThe number of load increments to apply the transformation
[out]errThe error code
[out]errorThe error string

Definition at line 8344 of file solver_routines.f90.

subroutine, public solver_routines::solver_geometrictransformationrotationset ( type(solver_type), pointer  solver,
real(dp), dimension(:), intent(in)  pt,
real(dp), dimension(:), intent(in)  axis,
real(dp), intent(in)  theta,
integer(intg), intent(in)  incrementIdx,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Set the rotation for a geometric transformation.

Parameters
solverA pointer the solver to set the field for
[in]ptThe pivot point to rotate about
[in]axisThe axis to to rotate around
[in]thetaThe angle to rotate
[in]incrementidxThe load increment index
[out]errThe error code
[out]errorThe error string

Definition at line 8379 of file solver_routines.f90.

subroutine, public solver_routines::solver_geometrictransformationscalingsset ( type(solver_type), pointer  solver,
real(dp), dimension(:), intent(in)  scalings,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Set the scalings for geometric transformation solver.

Parameters
solverA pointer the solver to set the field for
[in]scalingsThe scalings vector to set for uni-directional transformation
[out]errThe error code
[out]errorThe error string

Definition at line 8472 of file solver_routines.f90.

subroutine, public solver_routines::solver_geometrictransformationtranslationset ( type(solver_type), pointer  solver,
real(dp), dimension(:), intent(in)  translation,
integer(intg), intent(in)  incrementIdx,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Set the translation for a geometric transformation.

Parameters
solverA pointer the solver to set the field for
[in]translationThe translation vector to set
[in]incrementidxThe load increment index
[out]errThe error code
[out]errorThe error string

Definition at line 8518 of file solver_routines.f90.

subroutine solver_routines::solver_initialise ( type(solvers_type), pointer  SOLVERS,
integer(intg), intent(in)  SOLVER_INDEX,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a solver for a control loop.

Parameters
solversA pointer the solvers to initialise the solver for
[in]solver_indexThe solver index in solvers to initialise the solver for
[out]errThe error code
[out]errorThe error string

Definition at line 8743 of file solver_routines.f90.

References solver_finalise(), solver_initialise_ptr(), solver_linear_initialise(), and solver_linear_type.

Referenced by solvers_initialise(), and solvers_number_set().

subroutine solver_routines::solver_initialise_ptr ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a solver.

Parameters
solverA pointer the solver to initialise
[out]errThe error code
[out]errorThe error string

Definition at line 8797 of file solver_routines.f90.

References solver_no_output, and solver_number_of_solver_types.

Referenced by solver_dynamic_linearity_type_set(), solver_initialise(), solver_newton_cellml_evaluator_create(), solver_newton_initialise(), and solver_quasi_newton_initialise().

subroutine solver_routines::solver_label_get_c ( type(solver_type), pointer  SOLVER,
character(len=*), intent(out)  LABEL,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the label of a solver.

See also
OPENCMISS::CMISSSolverLabelGet
Parameters
solverA pointer to the solver to get the label for
[out]labelOn return, the solver label.
[out]errThe error code
[out]errorThe error string

Definition at line 8845 of file solver_routines.f90.

subroutine solver_routines::solver_label_get_vs ( type(solver_type), pointer  SOLVER,
type(varying_string), intent(out)  LABEL,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the label of a solver.

See also
OPENCMISS::CMISSSolverLabelGet
Parameters
solverA pointer to the solver to get the label for
[out]labelOn return, the solver label.
[out]errThe error code
[out]errorThe error string

Definition at line 8881 of file solver_routines.f90.

subroutine solver_routines::solver_label_set_c ( type(solver_type), pointer  SOLVER,
character(len=*), intent(in)  LABEL,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets the label of a solver.

See also
OPENCMISS::CMISSSolverLabelSet
Parameters
solverA pointer to the solver to set the label for
[in]labelThe label to set
[out]errThe error code
[out]errorThe error string

Definition at line 8910 of file solver_routines.f90.

subroutine solver_routines::solver_label_set_vs ( type(solver_type), pointer  SOLVER,
type(varying_string), intent(in)  LABEL,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets the label of a solver.

See also
OPENCMISS::CMISSSolverLabelSet
Parameters
solverA pointer to the solver to set the label for
[in]labelThe label to set
[out]errThe error code
[out]errorThe error string

Definition at line 8943 of file solver_routines.f90.

subroutine, public solver_routines::solver_library_type_get ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Gets the type of library to use for the solver.

See also
OPENCMISS::CMISSSolverLibraryTypeGet
Parameters
solverA pointer the solver to get the library type of
[out]solver_library_typeOn exit, the type of library used for the solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 8975 of file solver_routines.f90.

References solver_cellml_evaluator_library_type_get(), solver_cellml_evaluator_type, solver_dae_library_type_get(), solver_dae_type, solver_dynamic_library_type_get(), solver_dynamic_type, solver_eigenproblem_library_type_get(), solver_eigenproblem_type, solver_linear_library_type_get(), solver_linear_type, solver_nonlinear_library_type_get(), solver_nonlinear_type, solver_optimiser_library_type_get(), and solver_optimiser_type.

subroutine, public solver_routines::solver_library_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of library type to use for the solver.

See also
OPENCMISS::CMISSSolverLibraryTypeSet
Parameters
solverA pointer the solver to set the type of
[in]solver_library_typeThe type of library to use for the solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 9067 of file solver_routines.f90.

References solver_cellml_evaluator_library_type_set(), solver_cellml_evaluator_type, solver_cmiss_library, solver_dae_library_type_set(), solver_dae_type, solver_dynamic_library_type_set(), solver_dynamic_type, solver_eigenproblem_library_type_set(), solver_eigenproblem_type, solver_linear_library_type_set(), solver_linear_type, solver_nonlinear_library_type_set(), solver_nonlinear_type, solver_optimiser_library_type_set(), solver_optimiser_type, and solver_petsc_library.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine solver_routines::solver_linear_create_finish ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine solver_routines::solver_linear_direct_cholesky_finalise ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a Cholesky direct linear solver and deallocate all memory.

Parameters
direct_solverA pointer to the linear direct solver to finalise the Cholesky solver for
[out]errThe error code
[out]errorThe error string

Definition at line 9287 of file solver_routines.f90.

Referenced by solver_linear_direct_type_set().

subroutine solver_routines::solver_linear_direct_cholesky_initialise ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a Cholesky direct linear solver for a direct linear solver.

Parameters
direct_solverA pointer the direct linear solver to initialise the Cholesky direct linear solver for
[out]errThe error code
[out]errorThe error string

Definition at line 9313 of file solver_routines.f90.

Referenced by solver_linear_direct_type_set().

subroutine solver_routines::solver_linear_direct_create_finish ( type(linear_direct_solver_type), pointer  LINEAR_DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a linear direct solver.

Parameters
linear_direct_solverA pointer to the linear direct solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 9341 of file solver_routines.f90.

References solver_cmiss_library, solver_direct_cholesky, solver_direct_lu, solver_direct_svd, solver_essl_library, solver_full_matrices, solver_lapack_library, solver_lusol_library, solver_mumps_library, solver_pastix_library, solver_petsc_library, solver_sparse_matrices, solver_spooles_library, solver_superlu_library, and solver_umfpack_library.

Referenced by solver_linear_create_finish().

subroutine solver_routines::solver_linear_direct_finalise ( type(linear_direct_solver_type), pointer  LINEAR_DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a direct linear solver for a linear solver and deallocate all memory.

Parameters
linear_direct_solverA pointer to the lienar direct solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 9530 of file solver_routines.f90.

References solver_linear_direct_lu_finalise().

Referenced by solver_linear_direct_initialise(), solver_linear_finalise(), and solver_linear_type_set().

subroutine solver_routines::solver_linear_direct_initialise ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a direct linear solver for a lienar solver.

Parameters
linear_solverA pointer the linear solver to initialise the direct solver for
[out]errThe error code
[out]errorThe error string

Definition at line 9563 of file solver_routines.f90.

References solver_direct_lu, solver_linear_direct_finalise(), and solver_linear_direct_lu_initialise().

Referenced by solver_linear_type_set().

subroutine solver_routines::solver_linear_direct_library_type_get ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a direct linear solver.

Parameters
direct_solverA pointer the direct linear solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the direct linear solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 9603 of file solver_routines.f90.

References solver_direct_cholesky, solver_direct_lu, and solver_direct_svd.

Referenced by solver_linear_library_type_get().

subroutine solver_routines::solver_linear_direct_library_type_set ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a direct linear solver.

Parameters
direct_solverA pointer the direct linear solver to get the library type for.
[in]solver_library_typeThe type of library for the direct linear solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 9644 of file solver_routines.f90.

References solver_cmiss_library, solver_direct_cholesky, solver_direct_lu, solver_direct_svd, solver_essl_library, solver_lapack_library, solver_lusol_library, solver_mumps_library, solver_pastix_library, solver_spooles_library, and solver_superlu_library.

Referenced by solver_linear_library_type_set().

subroutine solver_routines::solver_linear_direct_lu_finalise ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a LU direct linear solver and deallocate all memory.

Parameters
direct_solverA pointer to the linear direct solver to finalise the LU solver for
[out]errThe error code
[out]errorThe error string

Definition at line 9711 of file solver_routines.f90.

References solver_cmiss_library, solver_essl_library, solver_lapack_library, solver_lusol_library, solver_mumps_library, solver_pastix_library, solver_spooles_library, solver_superlu_library, and solver_umfpack_library.

Referenced by solver_linear_direct_finalise(), solver_linear_direct_lu_initialise(), and solver_linear_direct_type_set().

subroutine solver_routines::solver_linear_direct_lu_initialise ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a LU direct linear solver for a direct linear solver.

Parameters
direct_solverA pointer the direct linear solver to initialise the LU direct linear solver for
[out]errThe error code
[out]errorThe error string

Definition at line 9770 of file solver_routines.f90.

References solver_linear_direct_lu_finalise(), and solver_mumps_library.

Referenced by solver_linear_direct_initialise(), and solver_linear_direct_type_set().

subroutine solver_routines::solver_linear_direct_solve ( type(linear_direct_solver_type), pointer  LINEAR_DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve a linear direct solver.

Parameters
linear_direct_solverA pointer to the linear direct solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 10065 of file solver_routines.f90.

References solver_cmiss_library, solver_direct_cholesky, solver_direct_lu, solver_direct_svd, solver_essl_library, solver_lapack_library, solver_lusol_library, solver_mumps_library, solver_pastix_library, solver_spooles_library, solver_superlu_library, and solver_umfpack_library.

Referenced by solver_linear_solve().

subroutine solver_routines::solver_linear_direct_svd_finalise ( type(linear_direct_solver_type), pointer  LINEAR_DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a SVD direct linear solver and deallocate all memory.

Parameters
linear_direct_solverA pointer to the linear direct solver to finalise the SVD solver for
[out]errThe error code
[out]errorThe error string

Definition at line 10311 of file solver_routines.f90.

Referenced by solver_linear_direct_type_set().

subroutine solver_routines::solver_linear_direct_svd_initialise ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a SVD direct linear solver for a direct linear solver.

Parameters
direct_solverA pointer the direct linear solver to initialise the SVD direct linear solver for
[out]errThe error code
[out]errorThe error string

Definition at line 10337 of file solver_routines.f90.

Referenced by solver_linear_direct_type_set().

subroutine, public solver_routines::solver_linear_direct_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  DIRECT_SOLVER_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of direct linear solver.

See also
OPENCMISS::CMISSSolverLinearDirectTypeSet
Parameters
solverA pointer the solver to set the direct linear solver type for.
[in]direct_solver_typeThe type of direct linear solver to set
See also
SOLVER_ROUTINES::DirectLinearSolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 10365 of file solver_routines.f90.

References solver_direct_cholesky, solver_direct_lu, solver_direct_svd, solver_linear_direct_cholesky_finalise(), solver_linear_direct_cholesky_initialise(), solver_linear_direct_lu_finalise(), solver_linear_direct_lu_initialise(), solver_linear_direct_solve_type, solver_linear_direct_svd_finalise(), solver_linear_direct_svd_initialise(), and solver_linear_type.

subroutine solver_routines::solver_linear_finalise ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a linear solver for a solver.

Parameters
linear_solverA pointer the linear solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 10442 of file solver_routines.f90.

References solver_linear_direct_finalise(), and solver_linear_iterative_finalise().

Referenced by solver_finalise(), solver_linear_initialise(), and solver_type_set().

subroutine solver_routines::solver_linear_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a linear solver for a solver.

Parameters
solverA pointer the solver to initialise the linear solver for
[out]errThe error code
[out]errorThe error string

Definition at line 10470 of file solver_routines.f90.

References solver_linear_finalise(), solver_linear_iterative_initialise(), and solver_linear_iterative_solve_type.

Referenced by solver_dynamic_linearity_type_set(), solver_initialise(), solver_newton_initialise(), solver_quasi_newton_initialise(), and solver_type_set().

subroutine solver_routines::solver_linear_iterative_create_finish ( type(linear_iterative_solver_type), pointer  LINEAR_ITERATIVE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine solver_routines::solver_linear_iterative_finalise ( type(linear_iterative_solver_type), pointer  LINEAR_ITERATIVE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise an iterative linear solver for a linear solver and deallocate all memory.

Parameters
linear_iterative_solverA pointer the linear iterative solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 10860 of file solver_routines.f90.

Referenced by solver_linear_finalise(), solver_linear_iterative_initialise(), and solver_linear_type_set().

subroutine, public solver_routines::solver_linear_iterative_gmres_restart_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  GMRES_RESTART,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the GMRES restart value for a GMRES iterative linear solver.

See also
OPENCMISS::CMISSSolverLinearIterativeGMRESRestartSet
Parameters
solverA pointer the solver to set the GMRES restart value
[in]gmres_restartThe GMRES restart value
[out]errThe error code
[out]errorThe error string

Definition at line 10894 of file solver_routines.f90.

References solver_iterative_gmres, solver_linear_iterative_solve_type, and solver_linear_type.

subroutine solver_routines::solver_linear_iterative_initialise ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise an iterative linear solver for a linear solver.

Parameters
linear_solverA pointer the linear solver to initialise the iterative solver for
[out]errThe error code
[out]errorThe error string

Definition at line 10958 of file solver_routines.f90.

References solver_iterative_gmres, solver_iterative_jacobi_preconditioner, solver_linear_iterative_finalise(), solver_petsc_library, and solver_solution_initialise_current_field.

Referenced by solver_linear_initialise(), and solver_linear_type_set().

subroutine solver_routines::solver_linear_iterative_library_type_get ( type(linear_iterative_solver_type), pointer  ITERATIVE_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for an iterative linear solver.

Parameters
iterative_solverA pointer the iterative linear solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the iterative linear solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11008 of file solver_routines.f90.

References solver_iterative_bicgstab, solver_iterative_chebyshev, solver_iterative_conjgrad_squared, solver_iterative_conjugate_gradient, solver_iterative_gmres, and solver_iterative_richardson.

Referenced by solver_linear_library_type_get().

subroutine solver_routines::solver_linear_iterative_library_type_set ( type(linear_iterative_solver_type), pointer  ITERATIVE_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for an iterative linear solver.

Parameters
iterative_solverA pointer the iterative linear solver to get the library type for.
[in]solver_library_typeThe type of library for the iterative linear solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11055 of file solver_routines.f90.

References solver_cmiss_library, solver_iterative_bicgstab, solver_iterative_chebyshev, solver_iterative_conjgrad_squared, solver_iterative_conjugate_gradient, solver_iterative_gmres, solver_iterative_richardson, and solver_petsc_library.

Referenced by solver_linear_library_type_set().

subroutine solver_routines::solver_linear_iterative_solve ( type(linear_iterative_solver_type), pointer  LINEAR_ITERATIVE_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solves a linear iterative linear solver.

Parameters
linear_iterative_solverA pointer the linear iterative solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 11450 of file solver_routines.f90.

References solver_cmiss_library, solver_petsc_library, solver_solution_initialise_current_field, solver_solution_initialise_no_change, solver_solution_initialise_zero, solver_solution_update(), and solver_solver_output.

Referenced by solver_linear_solve().

subroutine, public solver_routines::solver_linear_iterative_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  ITERATIVE_SOLVER_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of iterative linear solver.

See also
OPENCMISS::CMISSSolverLinearIterativeTypeSet
Parameters
solverA pointer the solver to set the iterative linear solver type
[in]iterative_solver_typeThe type of iterative linear solver to set
See also
SOLVER_ROUTINES::IterativeLinearSolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11666 of file solver_routines.f90.

References solver_iterative_bicgstab, solver_iterative_biconjugate_gradient, solver_iterative_chebyshev, solver_iterative_conjgrad_squared, solver_iterative_conjugate_gradient, solver_iterative_gmres, solver_iterative_richardson, solver_linear_iterative_solve_type, solver_linear_type, and solver_petsc_library.

subroutine solver_routines::solver_linear_library_type_get ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a linear solver.

Parameters
linear_solverA pointer the linear solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the linear solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11746 of file solver_routines.f90.

References solver_linear_direct_library_type_get(), solver_linear_direct_solve_type, solver_linear_iterative_library_type_get(), and solver_linear_iterative_solve_type.

Referenced by solver_library_type_get().

subroutine solver_routines::solver_linear_library_type_set ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a linear solver.

Parameters
linear_solverA pointer the linear solver to get the library type for.
[in]solver_library_typeThe type of library for the linear solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11797 of file solver_routines.f90.

References solver_linear_direct_library_type_set(), solver_linear_direct_solve_type, solver_linear_iterative_library_type_set(), and solver_linear_iterative_solve_type.

Referenced by solver_library_type_set().

subroutine solver_routines::solver_linear_matrices_library_type_get ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a linear solver matrices.

Parameters
linear_solverA pointer the linear solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the linear solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11848 of file solver_routines.f90.

References solver_linear_direct_solve_type, solver_linear_iterative_solve_type, solver_lineardirectmatriceslibrarytypeget(), and solver_lineariterativematriceslibrarytypeget().

Referenced by solver_matrices_library_type_get().

subroutine solver_routines::solver_linear_solve ( type(linear_solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve a linear solver.

Parameters
linear_solverA pointer to the linear solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 11899 of file solver_routines.f90.

References solver_linear_direct_solve(), solver_linear_direct_solve_type, solver_linear_iterative_solve(), solver_linear_iterative_solve_type, solver_matrices_static_assemble(), solver_solver_output, and solver_variables_field_update().

Referenced by solver_solve().

subroutine, public solver_routines::solver_linear_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  LINEAR_SOLVE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of linear solver.

See also
OPENCMISS::CMISSSolverLinearTypeSet
Parameters
solverA pointer the solver to set the linear solver type
[in]linear_solve_typeThe type of linear solver to set
See also
SOLVER_ROUTINES::LinearSolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 12007 of file solver_routines.f90.

References solver_linear_direct_finalise(), solver_linear_direct_initialise(), solver_linear_direct_solve_type, solver_linear_iterative_finalise(), solver_linear_iterative_initialise(), solver_linear_iterative_solve_type, and solver_linear_type.

subroutine solver_routines::solver_lineardirectmatriceslibrarytypeget ( type(linear_direct_solver_type), pointer  DIRECT_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a direct linear solver matrices.

Parameters
direct_solverA pointer the direct linear solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the direct linear solver
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 9806 of file solver_routines.f90.

Referenced by solver_linear_matrices_library_type_get().

subroutine, public solver_routines::solver_lineariterativeabsolutetoleranceset ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  ABSOLUTE_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum absolute tolerance for an iterative linear solver.

See also
OPENCMISS::CMISSSolverLinearIterativeAbsoluteToleranceSet
Parameters
solverA pointer the solver to set
[in]absolute_toleranceThe absolute tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 10514 of file solver_routines.f90.

References solver_linear_iterative_solve_type, and solver_linear_type.

subroutine, public solver_routines::solver_lineariterativedivergencetoleranceset ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  DIVERGENCE_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum divergence tolerance for an iterative linear solver.

See also
OPENCMISS::CMISSSolverLinearIterativeDivergenceToleranceSet
Parameters
solverA pointer the solver to set
[in]divergence_toleranceThe divergence tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 10802 of file solver_routines.f90.

References solver_linear_iterative_solve_type, and solver_linear_type.

subroutine solver_routines::solver_lineariterativematriceslibrarytypeget ( type(linear_iterative_solver_type), pointer  ITERATIVE_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for an iterative linear solver matrices.

Parameters
iterative_solverA pointer the iterative linear solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the iterative linear solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11162 of file solver_routines.f90.

Referenced by solver_linear_matrices_library_type_get().

subroutine, public solver_routines::solver_lineariterativemaximumiterationsset ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  MAXIMUM_ITERATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum number of iterations for an iterative linear solver.

See also
OPENCMISS::CMISSSolverLinearIterativeMaximumIterationsSet
Parameters
solverA pointer the solver to set the maximum number of iterations
[in]maximum_iterationsThe maximum number of iterations
[out]errThe error code
[out]errorThe error string

Definition at line 11192 of file solver_routines.f90.

References solver_linear_iterative_solve_type, and solver_linear_type.

subroutine, public solver_routines::solver_lineariterativepreconditionertypeset ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  ITERATIVE_PRECONDITIONER_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of preconditioner for an iterative linear solver.

See also
OPENCMISS::CMISSSolverLinearIterativePreconditionerTypeSet
Parameters
solverA pointer the solver to set the iterative linear solver type
[in]iterative_preconditioner_typeThe type of iterative preconditioner to set
See also
SOLVER_ROUTINES::IterativeLinearSolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11248 of file solver_routines.f90.

References solver_iterative_additive_schwarz_preconditioner, solver_iterative_block_jacobi_preconditioner, solver_iterative_incomplete_cholesky_preconditioner, solver_iterative_incomplete_lu_preconditioner, solver_iterative_jacobi_preconditioner, solver_iterative_no_preconditioner, solver_iterative_sor_preconditioner, solver_linear_iterative_solve_type, solver_linear_type, and solver_petsc_library.

subroutine, public solver_routines::solver_lineariterativerelativetoleranceset ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  RELATIVE_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the relative tolerance for an iterative linear solver.

See also
OPENCMISS::CMISSSolverLinearIterativeRelativeToleranceSet
Parameters
solverA pointer the solver to set
[in]relative_toleranceThe relative tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 11333 of file solver_routines.f90.

References solver_linear_iterative_solve_type, and solver_linear_type.

subroutine, public solver_routines::solver_lineariterativesolutioninittypeset ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SOLUTION_INITIALISE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the solution initialise type for an iterative linear solver.

Parameters
solverA pointer the solver to set
[in]solution_initialise_typeThe solution initialise type to set
See also
SOLVER_ROUTINES::SolutionInitialiseTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 11389 of file solver_routines.f90.

References solver_linear_iterative_solve_type, solver_linear_type, solver_solution_initialise_current_field, solver_solution_initialise_no_change, and solver_solution_initialise_zero.

Referenced by solver_dynamic_linearity_type_set().

subroutine, public solver_routines::solver_linked_solver_add ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  SOLVER_TO_LINK,
integer(intg), intent(in)  SOLV_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Adds a linked solver to the solver. Also sets the solver type for the linked solver, als well as its linking solver.

Parameters
solverA pointer to the solver to add the linked solver to.
solver_to_linkA pointer the the solver to be linked.
[in]solv_typeThe solver type of the solver to be linked.
[out]errThe error code
[out]errorThe error string

Definition at line 22925 of file solver_routines.f90.

References solver_number_of_solver_types.

Referenced by finite_elasticity_routines::finite_elasticity_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), solver_dynamic_linearity_type_set(), solver_newton_initialise(), and solver_quasi_newton_initialise().

subroutine, public solver_routines::solver_linked_solver_remove ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SOLV_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Adds a linked solver to the solver. Also sets the solver type for the linked solver, als well as its linking solver.

Parameters
solverA pointer to the solver to add the linked solver to.
[in]solv_typeThe solver type of the solver to be linked.
[out]errThe error code
[out]errorThe error string

Definition at line 23011 of file solver_routines.f90.

References solver_number_of_solver_types.

Referenced by solver_dynamic_linearity_type_set(), and solver_nonlinear_type_set().

subroutine, public solver_routines::solver_matrices_dynamic_assemble ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SELECTION_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Assembles the solver matrices and rhs from the dynamic equations.

Parameters
solverA pointer to the solver
[in]selection_typeThe type of matrix selection
See also
SOLVER_MATRICES_ROUTINES::SelectMatricesTypes,SOLVER_MATRICES_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 12079 of file solver_routines.f90.

References solver_dynamic_first_degree, solver_dynamic_first_order, solver_dynamic_second_degree, solver_dynamic_second_order, solver_dynamic_third_degree, solver_dynamic_type, solver_matrix_output, solver_nonlinear_type, and solver_timing_output.

Referenced by solver_dynamic_solve().

subroutine solver_routines::solver_matrices_library_type_get ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Gets the type of library to use for the solver matrices.

Parameters
solverA pointer the solver to get the matrices library type of
[out]matrices_library_typeOn exit, the type of library used for the solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 14781 of file solver_routines.f90.

References solver_cellml_evaluator_type, solver_dae_type, solver_dynamic_type, solver_eigenproblem_type, solver_eigenproblemmatriceslibrarytypeget(), solver_linear_matrices_library_type_get(), solver_linear_type, solver_nonlinear_matrices_library_type_get(), solver_nonlinear_type, solver_optimiser_matrices_library_type_get(), and solver_optimiser_type.

subroutine, public solver_routines::solver_matrices_static_assemble ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SELECTION_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Assembles the solver matrices and rhs from the static equations.

Parameters
solverA pointer to the solver
[in]selection_typeThe type of matrix selection
See also
SOLVER_MATRICES_ROUTINES::SelectMatricesTypes,SOLVER_MATRICES_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 13748 of file solver_routines.f90.

References solver_matrix_output, and solver_timing_output.

Referenced by solver_linear_solve().

subroutine, public solver_routines::solver_mumpssetcntl ( type(solver_type), pointer  solver,
integer(intg), intent(in)  icntl,
real(dp), intent(in)  val,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Sets MUMPS CNTL(icntl)=val through PETSc Mat API (see MUMPS user guide for more info). Must be called after the boundary conditions have been set up.

Parameters
[in]icntlThe MUMPS ICNTL integer control parameter
[in]valThe MUMPS CNTL real value to set: CNTL(icntl)=val
[out]errThe error code
[out]errorThe error string

Definition at line 9956 of file solver_routines.f90.

References solver_direct_cholesky, solver_direct_lu, solver_direct_svd, and solver_mumps_library.

subroutine, public solver_routines::solver_mumpsseticntl ( type(solver_type), pointer  solver,
integer(intg), intent(in)  icntl,
integer(intg), intent(in)  ivalue,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Sets MUMPS ICNTL(icntl)=ivalue through PETSc Mat API (see MUMPS user guide for more info). Must be called after the boundary conditions have been set up.

Parameters
[in]icntlThe MUMPS ICNTL integer control parameter
[in]ivalueThe MUMPS ICNTL integer value to set: ICNTL(icntl)=ivalue
[out]errThe error code
[out]errorThe error string

Definition at line 9837 of file solver_routines.f90.

References solver_direct_cholesky, solver_direct_lu, solver_direct_svd, solver_linear_direct_solve_type, solver_linear_type, and solver_mumps_library.

subroutine, public solver_routines::solver_newton_absolute_tolerance_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  ABSOLUTE_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum absolute tolerance for a nonlinear Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_ABSOLUTE_TOLERANCE_SET???
See also
OPENCMISS::CMISSSolverNewtonAbsoluteToleranceSet
Parameters
solverA pointer the solver to set the absolute tolerance for
[in]absolute_toleranceThe absolute tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 17593 of file solver_routines.f90.

References solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newton_cellml_evaluator_create ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  CELLML_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Create a CellML evaluator solver for the Newton solver.

Parameters
solverA pointer to the solver to create the CellML evaluator solver for
cellml_solverOn return, a pointer to the created CellML evaluator solver
[out]errThe error code
[out]errorThe error string

Definition at line 8689 of file solver_routines.f90.

References solver_cellml_evaluator_initialise(), and solver_initialise_ptr().

Referenced by finite_elasticity_routines::finite_elasticity_problem_setup(), and navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup().

subroutine, public solver_routines::solver_newton_cellml_solver_get ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  CELLML_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the CellML solver associated with a Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_CELLML_SOLVER_GET???
See also
OPENCMISS::CMISSSolverNewtonCellMLSolverGetSet
Parameters
solverA pointer the Newton solver to get the linear solver for
cellml_solverOn exit, a pointer the linear solver linked to the Newton solver. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 18100 of file solver_routines.f90.

References solver_dynamic_type, solver_nonlinear_newton, and solver_nonlinear_type.

Referenced by finite_elasticity_routines::finite_elasticity_problem_setup(), and navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup().

subroutine solver_routines::solver_newton_create_finish ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a Newton solver.

Parameters
newton_solverA pointer to the Newton solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 17716 of file solver_routines.f90.

References solver_newton_linesearch, solver_newton_linesearch_create_finish(), solver_newton_trustregion, and solver_newton_trustregion_create_finish().

Referenced by solver_nonlinear_create_finish().

recursive subroutine solver_routines::solver_newton_finalise ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a Newton solver and deallocate all memory.

Parameters
newton_solverA pointer the Newton solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 17754 of file solver_routines.f90.

References solver_finalise(), solver_newton_linesearch_finalise(), and solver_newton_trustregion_finalise().

Referenced by solver_newton_initialise(), solver_nonlinear_finalise(), and solver_nonlinear_type_set().

subroutine solver_routines::solver_newton_initialise ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a Newton solver for a nonlinear solver.

Parameters
nonlinear_solverA pointer the solver to initialise the Newton solver for
[out]errThe error code
[out]errorThe error string

Definition at line 17783 of file solver_routines.f90.

References solver_initialise_ptr(), solver_linear_initialise(), solver_linear_type, solver_linked_solver_add(), solver_newton_convergence_petsc_default, solver_newton_finalise(), solver_newton_jacobian_fd_calculated, solver_newton_linesearch, solver_newton_linesearch_initialise(), and solver_solution_initialise_current_field.

Referenced by solver_nonlinear_initialise(), and solver_nonlinear_type_set().

subroutine, public solver_routines::solver_newton_jacobian_calculation_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  JACOBIAN_CALCULATION_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of Jacobian calculation type for a Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_JACOBIAN_CALCULATION_SET???
See also
OPENCMISS::CMISSSolverNewtonJacobianCalculationSet
Parameters
solverA pointer the solver to set the Jacobian calculation type
[in]jacobian_calculation_typeThe type of Jacobian calculation type to set
See also
SOLVER_ROUTINES::JacobianCalculationTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 17855 of file solver_routines.f90.

References solver_newton_jacobian_equations_calculated, solver_newton_jacobian_fd_calculated, solver_newton_jacobian_not_calculated, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_newton_library_type_get ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a Newton solver.

Parameters
newton_solverA pointer the Newton solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the Newton solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 17922 of file solver_routines.f90.

References solver_newton_linesearch, and solver_newton_trustregion.

Referenced by solver_nonlinear_library_type_get().

subroutine solver_routines::solver_newton_library_type_set ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a Newton solver.

Parameters
newton_solverA pointer the Newton solver to get the library type for.
[in]solver_library_typeThe type of library for the Newton solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 17973 of file solver_routines.f90.

References solver_cmiss_library, solver_newton_linesearch, solver_newton_trustregion, and solver_petsc_library.

Referenced by solver_nonlinear_library_type_set().

subroutine, public solver_routines::solver_newton_linear_solver_get ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the linear solver associated with a Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_LINEAR_SOLVER_GET???
See also
OPENCMISS::CMISSSolverNewtonLinearSolverGetSet
Parameters
solverA pointer the Newton solver to get the linear solver for
linear_solverOn exit, a pointer the linear solver linked to the Newton solver. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 18044 of file solver_routines.f90.

References solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newton_linesearch_alpha_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  LINESEARCH_ALPHA,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the line search alpha for a Newton linesearch solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_LINESEARCH_ALPHA_SET???
See also
OPENCMISS::CMISSSolverNewtonLineSearchAlphaSet
Parameters
solverA pointer the solver to set the line search alpha for
[in]linesearch_alphaThe line search alpha to set
[out]errThe error code
[out]errorThe error string

Definition at line 18239 of file solver_routines.f90.

References solver_newton_linesearch, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_newton_linesearch_create_finish ( type(newton_linesearch_solver_type), pointer  LINESEARCH_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine solver_routines::solver_newton_linesearch_finalise ( type(newton_linesearch_solver_type), pointer  LINESEARCH_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a nonlinear Newton line search solver and deallocate all memory.

Parameters
linesearch_solverA pointer the nonlinear Newton line search solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 18722 of file solver_routines.f90.

Referenced by solver_newton_finalise(), solver_newton_linesearch_initialise(), and solver_newton_type_set().

subroutine solver_routines::solver_newton_linesearch_initialise ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a nonlinear Newton line search solver for a Newton solver.

Parameters
newton_solverA pointer the nonlinear Newton solver to initialise the Newton line search solver for
[out]errThe error code
[out]errorThe error string

Definition at line 18753 of file solver_routines.f90.

References solver_newton_linesearch_cubic, solver_newton_linesearch_finalise(), and solver_petsc_library.

Referenced by solver_newton_initialise(), and solver_newton_type_set().

subroutine, public solver_routines::solver_newton_linesearch_maxstep_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  LINESEARCH_MAXSTEP,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the line search maximum step for a nonlinear Newton linesearch solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_LINESEARCH_MAXSTEP_SET???
See also
OPENCMISS::CMISSSolverNewtonLineSearchMaxStepSet
Parameters
solverA pointer the solver to set the line search maximum step for
[in]linesearch_maxstepThe line search maximum step to set
[out]errThe error code
[out]errorThe error string

Definition at line 18803 of file solver_routines.f90.

References solver_newton_linesearch, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_newton_linesearch_solve ( type(newton_linesearch_solver_type), pointer  LINESEARCH_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
Parameters
linesearch_solverA pointer to the nonlinear Newton line search solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 18874 of file solver_routines.f90.

References solver_cmiss_library, solver_petsc_library, solver_solution_initialise_current_field, solver_solution_initialise_no_change, solver_solution_initialise_zero, solver_solution_update(), and solver_solver_output.

Referenced by solver_newton_solve().

subroutine, public solver_routines::solver_newton_linesearch_steptol_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  LINESEARCH_STEPTOL,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the line search step tolerance for a nonlinear Newton line search solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_LINESEARCH_STEPTOL_SET???
See also
OPENCMISS::CMISSSolverNewtonLineSearchStepTolSet
Parameters
solverA pointer the solver to set the line search step tolerance for
[in]linesearch_steptolThe line search step tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 19032 of file solver_routines.f90.

References solver_newton_linesearch, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newton_linesearch_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  LINESEARCH_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the line search type for a nonlinear Newton linesearch solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_LINESEARCH_TYPE_SET???
See also
OPENCMISS::CMISSSolverNewtonLineSearchTypeSet
Parameters
solverA pointer the solver to set the line search type for
[in]linesearch_typeThe line search type to set
See also
SOLVER_ROUTINES::NewtonLineSearchTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 19103 of file solver_routines.f90.

References solver_newton_linesearch, solver_newton_linesearch_cubic, solver_newton_linesearch_linear, solver_newton_linesearch_nonorms, solver_newton_linesearch_quadratic, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_newton_matrices_library_type_get ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a Newton solver matrices.

Parameters
newton_solverA pointer the Newton solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the Newton solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 19180 of file solver_routines.f90.

References solver_newton_linesearch, and solver_newton_trustregion.

Referenced by solver_nonlinear_matrices_library_type_get().

subroutine, public solver_routines::solver_newton_maximum_iterations_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  MAXIMUM_ITERATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum number of iterations for a nonlinear Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_MAXIMUM_ITERATIONS_SET???
See also
OPENCMISS::CMISSSolverNewtonMaximumIterationsSet
Parameters
solverA pointer the solver to set the maximum iterations for
[in]maximum_iterationsThe maximum iterations to set
[out]errThe error code
[out]errorThe error string

Definition at line 19292 of file solver_routines.f90.

References solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newton_relative_tolerance_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  RELATIVE_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the relative tolerance for a nonlinear Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_RELATIVE_TOLERANCE_SET???
See also
OPENCMISS::CMISSSolverNewtonRelativeToleranceSet
Parameters
solverA pointer the solver to set the relative tolerance for
[in]relative_toleranceThe relative tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 19352 of file solver_routines.f90.

References solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newton_solution_init_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SOLUTION_INITIALISE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the solution initialisation for a nonlinear Newton solver.

Parameters
solverA pointer the solver to set the solution tolerance for
[in]solution_initialise_typeThe solution initialise type to set
See also
SOLVER_ROUTINES::SolutionInitialiseTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 19412 of file solver_routines.f90.

References solver_nonlinear_newton, solver_nonlinear_type, solver_solution_initialise_current_field, solver_solution_initialise_no_change, and solver_solution_initialise_zero.

Referenced by solver_dynamic_linearity_type_set().

subroutine, public solver_routines::solver_newton_solution_tolerance_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  SOLUTION_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the solution tolerance for a nonlinear Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_SOLUTION_TOLERANCE_SET???
See also
OPENCMISS::CMISSSolverNewtonSolutionToleranceSet
Parameters
solverA pointer the solver to set the solution tolerance for
[in]solution_toleranceThe solution tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 19477 of file solver_routines.f90.

References solver_nonlinear_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_newton_solve ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
Parameters
newton_solverA pointer to the nonlinear Newton solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 19537 of file solver_routines.f90.

References solver_newton_linesearch, solver_newton_linesearch_solve(), solver_newton_trustregion, and solver_newton_trustregion_solve().

Referenced by solver_nonlinear_solve().

subroutine solver_routines::solver_newton_trustregion_create_finish ( type(newton_trustregion_solver_type), pointer  TRUSTREGION_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating nonlinear Newton trust region solver.

Parameters
trustregion_solverA pointer the nonlinear Newton trust region solver to finish the creation of
[out]errThe error code
[out]errorThe error string

Definition at line 19575 of file solver_routines.f90.

References solver_cmiss_library, and solver_petsc_library.

Referenced by solver_newton_create_finish().

subroutine, public solver_routines::solver_newton_trustregion_delta0_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  TRUSTREGION_DELTA0,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the trust region delta0 for a nonlinear Newton trust region solver solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_TRUSTREGION_DELTA0_SET???
See also
OPENCMISS::CMISSSolverNewtonTrustRegionDelta0Set
Parameters
solverA pointer the solver to set the trust region delta0 for
[in]trustregion_delta0The trust region delta0 to set
[out]errThe error code
[out]errorThe error string

Definition at line 19753 of file solver_routines.f90.

References solver_newton_trustregion, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_newton_trustregion_finalise ( type(newton_trustregion_solver_type), pointer  TRUSTREGION_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a nonlinear Newton trust region solver and deallocate all memory.

Parameters
trustregion_solverA pointer the non linear trust region solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 19824 of file solver_routines.f90.

Referenced by solver_newton_finalise(), solver_newton_trustregion_initialise(), and solver_newton_type_set().

subroutine solver_routines::solver_newton_trustregion_initialise ( type(newton_solver_type), pointer  NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a Newton trust region solver for a nonlinear solver.

Parameters
newton_solverA pointer the Newton solver to initialise the trust region solver for
[out]errThe error code
[out]errorThe error string

Definition at line 19851 of file solver_routines.f90.

References solver_newton_trustregion_finalise(), and solver_petsc_library.

Referenced by solver_newton_type_set().

subroutine solver_routines::solver_newton_trustregion_solve ( type(newton_trustregion_solver_type), pointer  TRUSTREGION_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
Parameters
trustregion_solverA pointer to the nonlinear Newton trust region solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 19893 of file solver_routines.f90.

References solver_cmiss_library, and solver_petsc_library.

Referenced by solver_newton_solve().

subroutine, public solver_routines::solver_newton_trustregion_tolerance_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  TRUSTREGION_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the trust region tolerance for a nonlinear Newton trust region solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_TRUSTREGION_TOLERANCE_SET???
See also
OPENCMISS::CMISSSolverNewtonTrustRegionToleranceSet
Parameters
solverA pointer the solver to set the trust region tolerance for
[in]trustregion_toleranceThe trust region tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 19961 of file solver_routines.f90.

References solver_newton_trustregion, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newton_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  NEWTON_SOLVE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of nonlinear Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_TYPE_SET???
See also
OPENCMISS::CMISSSolverNewtonTypeSet
Parameters
solverA pointer the solver to set the nonlinear Newton solver type
[in]newton_solve_typeThe type of nonlinear solver to set
See also
SOLVER_ROUTINES::NewtonSolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20032 of file solver_routines.f90.

References solver_newton_linesearch, solver_newton_linesearch_finalise(), solver_newton_linesearch_initialise(), solver_newton_trustregion, solver_newton_trustregion_finalise(), solver_newton_trustregion_initialise(), solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newtonconvergencetesttypeset ( type(solver_type), pointer  solver,
integer(intg), intent(in)  convergenceTestType,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Sets/changes the convergence test for a Newton nonlinear solver.

See also
OPENCMISS::CMISSSolverNewtonConvergenceTestSet
Parameters
solverA pointer the solver to set the convergence test for
[in]convergencetesttypeThe convergence test type to set
[out]errThe error code
[out]errorThe error string

Definition at line 18174 of file solver_routines.f90.

References solver_newton_convergence_differentiated_ratio, solver_newton_convergence_energy_norm, solver_newton_convergence_petsc_default, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newtonlinesearchmonitoroutputset ( type(solver_type), pointer  solver,
logical, intent(in)  linesearchMonitorOutputFlag,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Enables/disables output monitoring for a nonlinear Newton line search solver.

Parameters
solverA pointer the solver to set the absolute tolerance for
[in]linesearchmonitoroutputflagFlag to determine whether to enable/disable linsearch monitor output.
[out]errThe error code
[out]errorThe error string

Definition at line 17653 of file solver_routines.f90.

References solver_newton_linesearch, solver_nonlinear_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_newtonmaximumfunctionevaluationsset ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  MAXIMUM_FUNCTION_EVALUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum number of function evaluations for a nonlinear Newton solver.

Todo:
should this be SOLVER_NONLINEAR_NEWTON_MAXIMUM_FUNCTION_EVALUATIONS_SET???
See also
OPENCMISS::CMISSSolverNewtonMaximumFunctionEvaluationsSet
Parameters
solverA pointer the solver to set the maximum function evaluations for
[in]maximum_function_evaluationsThe maximum function evaluations to set
[out]errThe error code
[out]errorThe error string

Definition at line 19231 of file solver_routines.f90.

References solver_nonlinear_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_nonlinear_create_finish ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a nonlinear solver.

Parameters
nonlinear_solverA pointer to the nonlinear solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 20122 of file solver_routines.f90.

References solver_newton_create_finish(), solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, solver_nonlinear_sqp, and solver_quasi_newton_create_finish().

Referenced by solver_dynamic_create_finish(), and solverequations_boundaryconditionscreatefinish().

subroutine, public solver_routines::solver_nonlinear_divergence_exit ( type(solver_type), intent(in)  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
recursive subroutine solver_routines::solver_nonlinear_finalise ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a nonlinear solver for a solver.

Parameters
nonlinear_solverA pointer the nonlinear solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 20272 of file solver_routines.f90.

References solver_newton_finalise(), solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, solver_nonlinear_sqp, and solver_quasi_newton_finalise().

Referenced by solver_finalise(), solver_nonlinear_initialise(), and solver_type_set().

subroutine solver_routines::solver_nonlinear_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a nonlinear solver for a solver.

Parameters
solverA pointer the solver to initialise the nonlinear solver for
[out]errThe error code
[out]errorThe error string

Definition at line 20313 of file solver_routines.f90.

References solver_newton_initialise(), solver_nonlinear_finalise(), and solver_nonlinear_newton.

Referenced by solver_dynamic_linearity_type_set(), and solver_type_set().

subroutine solver_routines::solver_nonlinear_library_type_get ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a nonlinear solver.

Parameters
nonlinear_solverA pointer the nonlinear solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the nonlinear solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20355 of file solver_routines.f90.

References solver_newton_library_type_get(), solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, solver_nonlinear_sqp, and solver_quasi_newton_library_type_get().

Referenced by solver_library_type_get().

subroutine solver_routines::solver_nonlinear_library_type_set ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a nonlinear solver.

Parameters
nonlinear_solverA pointer the nonlinear solver to get the library type for.
[in]solver_library_typeThe type of library for the nonlinear solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20411 of file solver_routines.f90.

References solver_newton_library_type_set(), solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, solver_nonlinear_sqp, and solver_quasi_newton_library_type_set().

Referenced by solver_library_type_set().

subroutine solver_routines::solver_nonlinear_matrices_library_type_get ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a nonlinear solver matrices.

Parameters
nonlinear_solverA pointer the nonlinear solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the nonlinear solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20467 of file solver_routines.f90.

References solver_newton_matrices_library_type_get(), solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, solver_nonlinear_sqp, and solver_quasinewtonmatriceslibrarytypeget().

Referenced by solver_matrices_library_type_get().

subroutine, public solver_routines::solver_nonlinear_monitor ( type(nonlinear_solver_type), pointer  nonlinearSolver,
integer(intg), intent(in)  its,
real(dp), intent(in)  norm,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Monitors the nonlinear solve.

Parameters
nonlinearsolverA pointer to the nonlinear solver to monitor
[in]itsThe number of iterations
[in]normThe residual norm
[out]errThe error code
[out]errorThe error string

Definition at line 20523 of file solver_routines.f90.

References solver_newton_convergence_differentiated_ratio, solver_newton_convergence_energy_norm, solver_newton_convergence_petsc_default, solver_newton_linesearch, solver_newton_trustregion, solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, and solver_nonlinear_sqp.

Referenced by solver_nonlinear_monitor_petsc().

subroutine solver_routines::solver_nonlinear_solve ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
Parameters
nonlinear_solverA pointer to the nonlinear solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 20645 of file solver_routines.f90.

References solver_newton_solve(), solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, solver_nonlinear_sqp, solver_quasi_newton_solve(), and solver_solver_output.

Referenced by solver_solve().

subroutine, public solver_routines::solver_nonlinear_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  NONLINEAR_SOLVE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of nonlinear solver.

See also
OPENCMISS::CMISSSolverNonlinearTypeSet
Parameters
solverA pointer the solver to set the nonlinear solver type
[in]nonlinear_solve_typeThe type of nonlinear solver to set
See also
SOLVER_ROUTINES::NonlinearSolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20728 of file solver_routines.f90.

References solver_linear_type, solver_linked_solver_remove(), solver_newton_finalise(), solver_newton_initialise(), solver_nonlinear_bfgs_inverse, solver_nonlinear_newton, solver_nonlinear_quasi_newton, solver_nonlinear_sqp, solver_nonlinear_type, solver_quasi_newton_finalise(), and solver_quasi_newton_initialise().

subroutine solver_routines::solver_optimiser_create_finish ( type(optimiser_solver_type), pointer  OPTIMISER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating an optimiser solver.

Parameters
optimiser_solverA pointer to the optimiser solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 20818 of file solver_routines.f90.

subroutine solver_routines::solver_optimiser_finalise ( type(optimiser_solver_type), pointer  OPTIMISER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a optimiser solver.

Parameters
optimiser_solverA pointer the optimiser solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 20846 of file solver_routines.f90.

Referenced by solver_finalise(), solver_optimiser_initialise(), and solver_type_set().

subroutine solver_routines::solver_optimiser_initialise ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise an optimiser solver for a solver.

Parameters
solverA pointer the solver to initialise the optimiser solver for
[out]errThe error code
[out]errorThe error string

Definition at line 20872 of file solver_routines.f90.

References solver_optimiser_finalise(), and solver_tao_library.

Referenced by solver_type_set().

subroutine solver_routines::solver_optimiser_library_type_get ( type(optimiser_solver_type), pointer  OPTIMISER_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for an optimiser solver.

Parameters
optimiser_solverA pointer the optimiser solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the optimiser solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20911 of file solver_routines.f90.

Referenced by solver_library_type_get().

subroutine solver_routines::solver_optimiser_library_type_set ( type(optimiser_solver_type), pointer  OPTIMISER_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for an optimisation solver.

Parameters
optimiser_solverA pointer the optimiser solver to get the library type for.
[in]solver_library_typeThe type of library for the optimiser solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20940 of file solver_routines.f90.

References solver_cmiss_library, and solver_tao_library.

Referenced by solver_library_type_set().

subroutine solver_routines::solver_optimiser_matrices_library_type_get ( type(optimiser_solver_type), pointer  OPTIMISER_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for an optimiser solver matrices.

Parameters
optimiser_solverA pointer the optimiser solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the optimiser solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 20980 of file solver_routines.f90.

Referenced by solver_matrices_library_type_get().

subroutine solver_routines::solver_optimiser_solve ( type(optimiser_solver_type), pointer  OPTIMISER_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Solve an optimiser solver.

Parameters
optimiser_solverA pointer the optimiser solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 21009 of file solver_routines.f90.

Referenced by solver_solve().

subroutine, public solver_routines::solver_output_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  OUTPUT_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the output type for a solver.

See also
OPENCMISS::CMISSSolverOutputTypeSet
Parameters
solverA pointer the solver to set the output type for
[in]output_typeThe type of solver output to be set
See also
SOLVER_ROUTINES::OutputTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 21037 of file solver_routines.f90.

References solver_matrix_output, solver_no_output, solver_progress_output, solver_solver_output, and solver_timing_output.

subroutine, public solver_routines::solver_quasi_newton_absolute_tolerance_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  ABSOLUTE_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum absolute tolerance for a nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonAbsoluteToleranceSet
Parameters
solverA pointer the solver to set the absolute tolerance for
[in]absolute_toleranceThe absolute tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 14853 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_quasi_newton_cellml_solver_get ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  CELLML_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the CellML solver associated with a Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonCellMLSolverGetSet
Parameters
solverA pointer the Quasi-Newton solver to get the linear solver for
cellml_solverOn exit, a pointer the linear solver linked to the Quasi-Newton solver. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 15369 of file solver_routines.f90.

References solver_dynamic_type, solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_quasi_newton_create_finish ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating a Quasi-Newton solver.

Parameters
quasi_newton_solverA pointer to the Quasi-Newton solver to finish the creation of.
[out]errThe error code
[out]errorThe error string

Definition at line 14977 of file solver_routines.f90.

References solver_quasi_newton_linesearch, solver_quasi_newton_trustregion, solver_quasinewtonlinesearchcreatefinish(), and solver_quasinewtontrustregioncreatefinish().

Referenced by solver_nonlinear_create_finish().

recursive subroutine solver_routines::solver_quasi_newton_finalise ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a Quasi-Newton solver and deallocate all memory.

Parameters
quasi_newton_solverA pointer the Quasi-Newton solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 15017 of file solver_routines.f90.

References solver_finalise(), solver_quasi_newton_trustregion_finalise(), and solver_quasinewtonlinesearchfinalise().

Referenced by solver_nonlinear_finalise(), solver_nonlinear_type_set(), and solver_quasi_newton_initialise().

subroutine solver_routines::solver_quasi_newton_initialise ( type(nonlinear_solver_type), pointer  NONLINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
subroutine solver_routines::solver_quasi_newton_library_type_get ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(out)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a Quasi-Newton solver.

Parameters
quasi_newton_solverA pointer the Quasi-Newton solver to get the library type for.
[out]solver_library_typeOn exit, the type of library used for the Quasi-Newton solver
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 15191 of file solver_routines.f90.

References solver_quasi_newton_linesearch, and solver_quasi_newton_trustregion.

Referenced by solver_nonlinear_library_type_get().

subroutine solver_routines::solver_quasi_newton_library_type_set ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(in)  SOLVER_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Sets/changes the type of library to use for a Quasi-Newton solver.

Parameters
quasi_newton_solverA pointer the Quasi-Newton solver to get the library type for.
[in]solver_library_typeThe type of library for the Quasi-Newton solver to set.
See also
SOLVER_ROUTINES::SolverLibraries,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 15242 of file solver_routines.f90.

References solver_cmiss_library, solver_petsc_library, solver_quasi_newton_linesearch, and solver_quasi_newton_trustregion.

Referenced by solver_nonlinear_library_type_set().

subroutine, public solver_routines::solver_quasi_newton_linear_solver_get ( type(solver_type), pointer  SOLVER,
type(solver_type), pointer  LINEAR_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns the linear solver associated with a Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonLinearSolverGetSet
Parameters
solverA pointer the Quasi-Newton solver to get the linear solver for
linear_solverOn exit, a pointer the linear solver linked to the Quasi-Newton solver. Must not be associated on entry
[out]errThe error code
[out]errorThe error string

Definition at line 15313 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_quasi_newton_linesearch_initialise ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a nonlinear Quasi-Newton line search solver for a Quasi-Newton solver.

Parameters
quasi_newton_solverA pointer the nonlinear Quasi-Newton solver to initialise the Quasi-Newton line search solver for
[out]errThe error code
[out]errorThe error string

Definition at line 15976 of file solver_routines.f90.

References solver_petsc_library, solver_quasi_newton_linesearch_cp, and solver_quasinewtonlinesearchfinalise().

Referenced by solver_quasi_newton_initialise(), and solver_quasi_newton_solve_type_set().

subroutine, public solver_routines::solver_quasi_newton_linesearch_maxstep_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  LINESEARCH_MAXSTEP,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the line search maximum step for a nonlinear Quasi-Newton linesearch solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonLineSearchMaxStepSet
Parameters
solverA pointer the solver to set the line search maximum step for
[in]linesearch_maxstepThe line search maximum step to set
[out]errThe error code
[out]errorThe error string

Definition at line 16025 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, and solver_quasi_newton_linesearch.

subroutine solver_routines::solver_quasi_newton_linesearch_solve ( type(quasi_newton_linesearch_solver_type), pointer  LINESEARCH_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
Parameters
linesearch_solverA pointer to the nonlinear Quasi-Newton line search solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 16096 of file solver_routines.f90.

References solver_cmiss_library, solver_petsc_library, solver_solution_initialise_current_field, solver_solution_initialise_no_change, solver_solution_initialise_zero, solver_solution_update(), and solver_solver_output.

Referenced by solver_quasi_newton_solve().

subroutine, public solver_routines::solver_quasi_newton_linesearch_steptol_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  LINESEARCH_STEPTOL,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the line search step tolerance for a nonlinear Quasi-Newton line search solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonLineSearchStepTolSet
Parameters
solverA pointer the solver to set the line search step tolerance for
[in]linesearch_steptolThe line search step tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 16249 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, and solver_quasi_newton_linesearch.

subroutine, public solver_routines::solver_quasi_newton_linesearch_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  LINESEARCH_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the line search type for a nonlinear Quasi-Newton linesearch solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonLineSearchTypeSet
Parameters
solverA pointer the solver to set the line search type for
[in]linesearch_typeThe line search type to set
See also
SOLVER_ROUTINES::QuasiNewtonLineSearchTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 16320 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, solver_quasi_newton_linesearch, solver_quasi_newton_linesearch_basic, solver_quasi_newton_linesearch_cp, and solver_quasi_newton_linesearch_l2.

subroutine, public solver_routines::solver_quasi_newton_maximum_iterations_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  MAXIMUM_ITERATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum number of iterations for a nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonMaximumIterationsSet
Parameters
solverA pointer the solver to set the maximum iterations for
[in]maximum_iterationsThe maximum iterations to set
[out]errThe error code
[out]errorThe error string

Definition at line 16508 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_quasi_newton_relative_tolerance_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  RELATIVE_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the relative tolerance for a nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonRelativeToleranceSet
Parameters
solverA pointer the solver to set the relative tolerance for
[in]relative_toleranceThe relative tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 16568 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_quasi_newton_restart_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  RESTART,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the restart of nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonRestartSet
Parameters
solverA pointer the solver to set the nonlinear Quasi-Newton solver type
[in]restartSets the number of stored updates and the restart period for periodic restart type
[out]errThe error code
[out]errorThe error string

Definition at line 17246 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_quasi_newton_restart_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  QUASI_NEWTON_RESTART_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the restart type of nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonRestartTypeSet
Parameters
solverA pointer the solver to set the nonlinear Quasi-Newton solver type
[in]quasi_newton_restart_typeThe restart type of nonlinear Quasi-Newton to set
See also
SOLVER_ROUTINES::QuasiNewtonRestartTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 17299 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, solver_quasi_newton_restart_none, solver_quasi_newton_restart_periodic, and solver_quasi_newton_restart_powell.

subroutine, public solver_routines::solver_quasi_newton_scale_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  QUASI_NEWTON_SCALE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the scale type of nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonScaleTypeSet
Parameters
solverA pointer the solver to set the nonlinear Quasi-Newton solver type
[in]quasi_newton_scale_typeThe scale type of nonlinear Quasi-Newton to set
See also
SOLVER_ROUTINES::QuasiNewtonScaleTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 17368 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, solver_quasi_newton_scale_jacobian, solver_quasi_newton_scale_linesearch, solver_quasi_newton_scale_none, and solver_quasi_newton_scale_shanno.

subroutine, public solver_routines::solver_quasi_newton_solution_init_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SOLUTION_INITIALISE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the solution initialisation for a nonlinear Quasi-Newton solver.

Parameters
solverA pointer the solver to set the solution tolerance for
[in]solution_initialise_typeThe solution initialise type to set
See also
SOLVER_ROUTINES::SolutionInitialiseTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 16628 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, solver_solution_initialise_current_field, solver_solution_initialise_no_change, and solver_solution_initialise_zero.

subroutine, public solver_routines::solver_quasi_newton_solution_tolerance_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  SOLUTION_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the solution tolerance for a nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverNewtonSolutionToleranceSet
Parameters
solverA pointer the solver to set the solution tolerance for
[in]solution_toleranceThe solution tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 16693 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_quasi_newton_solve ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
Parameters
quasi_newton_solverA pointer to the nonlinear Quasi-Newton solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 16753 of file solver_routines.f90.

References solver_quasi_newton_linesearch, solver_quasi_newton_linesearch_solve(), solver_quasi_newton_trustregion, and solver_quasi_newton_trustregion_solve().

Referenced by solver_nonlinear_solve().

subroutine, public solver_routines::solver_quasi_newton_solve_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  QUASI_NEWTON_SOLVE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the solve type of nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonSolveTypeSet
Parameters
solverA pointer the solver to set the nonlinear Quasi-Newton solver type
[in]quasi_newton_solve_typeThe type of nonlinear solver to set
See also
SOLVER_ROUTINES::QuasiNewtonSolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 17507 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, solver_quasi_newton_linesearch, solver_quasi_newton_linesearch_initialise(), solver_quasi_newton_trustregion, solver_quasi_newton_trustregion_finalise(), solver_quasi_newton_trustregion_initialise(), and solver_quasinewtonlinesearchfinalise().

subroutine, public solver_routines::solver_quasi_newton_trustregion_delta0_set ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  TRUSTREGION_DELTA0,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the trust region delta0 for a nonlinear Quasi-Newton trust region solver solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonTrustRegionDelta0Set
Parameters
solverA pointer the solver to set the trust region delta0 for
[in]trustregion_delta0The trust region delta0 to set
[out]errThe error code
[out]errorThe error string

Definition at line 16967 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, and solver_quasi_newton_trustregion.

subroutine solver_routines::solver_quasi_newton_trustregion_finalise ( type(quasi_newton_trustregion_solver_type), pointer  TRUSTREGION_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalise a nonlinear Quasi-Newton trust region solver and deallocate all memory.

Parameters
trustregion_solverA pointer the non linear trust region solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 17038 of file solver_routines.f90.

Referenced by solver_quasi_newton_finalise(), solver_quasi_newton_solve_type_set(), and solver_quasi_newton_trustregion_initialise().

subroutine solver_routines::solver_quasi_newton_trustregion_initialise ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialise a Quaso-Newton trust region solver for a nonlinear solver.

Parameters
quasi_newton_solverA pointer the Quasi-Newton solver to initialise the trust region solver for
[out]errThe error code
[out]errorThe error string

Definition at line 17065 of file solver_routines.f90.

References solver_petsc_library, and solver_quasi_newton_trustregion_finalise().

Referenced by solver_quasi_newton_solve_type_set().

subroutine solver_routines::solver_quasi_newton_trustregion_solve ( type(quasi_newton_trustregion_solver_type), pointer  TRUSTREGION_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private
Parameters
trustregion_solverA pointer to the nonlinear Quasi-Newton trust region solver to solve
[out]errThe error code
[out]errorThe error string

Definition at line 17107 of file solver_routines.f90.

References solver_cmiss_library, and solver_petsc_library.

Referenced by solver_quasi_newton_solve().

subroutine, public solver_routines::solver_quasi_newton_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  QUASI_NEWTON_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonTypeSet
Parameters
solverA pointer the solver to set the nonlinear Quasi-Newton solver type
[in]quasi_newton_typeThe type of nonlinear Quasi-Newton to set
See also
SOLVER_ROUTINES::QuasiNewtonTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 17439 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, solver_quasi_newton_badbroyden, solver_quasi_newton_goodbroyden, and solver_quasi_newton_lbfgs.

subroutine, public solver_routines::solver_quasinewtonconvergencetesttypeset ( type(solver_type), pointer  solver,
integer(intg), intent(in)  convergenceTestType,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Sets/changes the convergence test for a Quasi-Newton nonlinear solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonConvergenceTestSet
Parameters
solverA pointer the solver to set the convergence test for
[in]convergencetesttypeThe convergence test type to set
[out]errThe error code
[out]errorThe error string

Definition at line 15443 of file solver_routines.f90.

References solver_newton_convergence_differentiated_ratio, solver_newton_convergence_energy_norm, solver_newton_convergence_petsc_default, solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine, public solver_routines::solver_quasinewtonjacobiancalculationtypeset ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  JACOBIAN_CALCULATION_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type of Jacobian calculation type for a Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonJacobianCalculationSet
Parameters
solverA pointer the solver to set the Jacobian calculation type
[in]jacobian_calculation_typeThe type of Jacobian calculation type to set
See also
SOLVER_ROUTINES::JacobianCalculationTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 15123 of file solver_routines.f90.

References solver_newton_jacobian_equations_calculated, solver_newton_jacobian_fd_calculated, solver_newton_jacobian_not_calculated, solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_quasinewtonlinesearchfinalise ( type(quasi_newton_linesearch_solver_type), pointer  linesearchSolver,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)
private

Finalise a nonlinear Quasi-Newton line search solver and deallocate all memory.

Parameters
linesearchsolverA pointer the nonlinear Quasi-Newton line search solver to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 15945 of file solver_routines.f90.

Referenced by solver_quasi_newton_finalise(), solver_quasi_newton_linesearch_initialise(), and solver_quasi_newton_solve_type_set().

subroutine, public solver_routines::solver_quasinewtonlinesearchmonitoroutputset ( type(solver_type), pointer  solver,
logical, intent(in)  linesearchMonitorOutputFlag,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Enables/disables output monitoring for a nonlinear Quasi-Newton line search solver.

Parameters
solverA pointer the solver to set the absolute tolerance for
[in]linesearchmonitoroutputflagFlag to determine whether to enable/disable linsearch monitor output.
[out]errThe error code
[out]errorThe error string

Definition at line 14913 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, and solver_quasi_newton_linesearch.

subroutine solver_routines::solver_quasinewtonmatriceslibrarytypeget ( type(quasi_newton_solver_type), pointer  QUASI_NEWTON_SOLVER,
integer(intg), intent(out)  MATRICES_LIBRARY_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Returns the type of library to use for a Quasi-Newton solver matrices.

Parameters
quasi_newton_solverA pointer the Quasi-Newton solver to get the library type for.
[out]matrices_library_typeOn exit, the type of library used for the Quasi-Newton solver matrices
See also
DISTRIBUTED_MATRIX_VECTOR::LibraryTypes,DISTRIBUTED_MATRIX_VECTOR
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 16395 of file solver_routines.f90.

References solver_quasi_newton_linesearch, and solver_quasi_newton_trustregion.

Referenced by solver_nonlinear_matrices_library_type_get().

subroutine, public solver_routines::solver_quasinewtonmaximumfunctionevaluationsset ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  MAXIMUM_FUNCTION_EVALUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the maximum number of function evaluations for a nonlinear Quasi-Newton solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonMaximumFunctionEvaluationsSet
Parameters
solverA pointer the solver to set the maximum function evaluations for
[in]maximum_function_evaluationsThe maximum function evaluations to set
[out]errThe error code
[out]errorThe error string

Definition at line 16446 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, and solver_nonlinear_type.

subroutine solver_routines::solver_quasinewtontrustregioncreatefinish ( type(quasi_newton_trustregion_solver_type), pointer  TRUSTREGION_SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finishes the process of creating nonlinear Quasi-Newton trust region solver.

Parameters
trustregion_solverA pointer the nonlinear Quasi-Newton trust region solver to finish the creation of
[out]errThe error code
[out]errorThe error string

Definition at line 16791 of file solver_routines.f90.

References solver_cmiss_library, and solver_petsc_library.

Referenced by solver_quasi_newton_create_finish().

subroutine, public solver_routines::solver_quasinewtontrustregiontoleranceset ( type(solver_type), pointer  SOLVER,
real(dp), intent(in)  TRUSTREGION_TOLERANCE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the trust region tolerance for a nonlinear Quasi-Newton trust region solver.

See also
OPENCMISS::CMISSSolverQuasiNewtonTrustRegionToleranceSet
Parameters
solverA pointer the solver to set the trust region tolerance for
[in]trustregion_toleranceThe trust region tolerance to set
[out]errThe error code
[out]errorThe error string

Definition at line 17175 of file solver_routines.f90.

References solver_nonlinear_quasi_newton, solver_nonlinear_type, and solver_quasi_newton_trustregion.

subroutine, public solver_routines::solver_solution_update ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Updates the solver solution from the field variables.

Parameters
solverA pointer the solver to update the solution from
[out]errThe error code
[out]errorThe error string

Definition at line 21086 of file solver_routines.f90.

Referenced by bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_convergencecheck(), solver_linear_iterative_solve(), solver_newton_linesearch_solve(), and solver_quasi_newton_linesearch_solve().

recursive subroutine, public solver_routines::solver_solve ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
subroutine, public solver_routines::solver_solver_equations_get ( type(solver_type), pointer  SOLVER,
type(solver_equations_type), pointer  SOLVER_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns a pointer to the solver equations for a solver.

See also
OPENCMISS::CMISSSolverSolverEquationsGet
Parameters
solverA pointer to the solver to get the solver equations for
solver_equationsOn exit, a pointer to the specified solver equations. Must not be associated on entry.
[out]errThe error code
[out]errorThe error string

Definition at line 21230 of file solver_routines.f90.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_computefibrestretch(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_controllooppostloop(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_convergencecheck(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_forcelengthvelocityrelation(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solver_time_stepping_monitor ( type(dae_solver_type), pointer  DAE_SOLVER,
integer(intg), intent(in)  STEPS,
real(dp), intent(in)  TIME,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Monitors the differential-algebraic equations solve.

Parameters
dae_solverA pointer to the differential-algebraic equations solver to monitor
[in]stepsThe number of iterations
[in]timeThe current time
[out]errThe error code
[out]errorThe error string

Definition at line 6292 of file solver_routines.f90.

Referenced by solver_time_stepping_monitor_petsc().

subroutine, public solver_routines::solver_type_set ( type(solver_type), pointer  SOLVER,
integer(intg), intent(in)  SOLVE_TYPE,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the type for a solver.

Parameters
solverA pointer the solver to set the solver type for.
[in]solve_typeThe type of solver to be set
See also
SOLVER_ROUTINES::SolverTypes,SOLVER_ROUTINES
Parameters
[out]errThe error code
[out]errorThe error string

Definition at line 21345 of file solver_routines.f90.

References solver_cellml_evaluator_finalise(), solver_cellml_evaluator_initialise(), solver_cellml_evaluator_type, solver_dae_finalise(), solver_dae_initialise(), solver_dae_type, solver_dynamic_finalise(), solver_dynamic_initialise(), solver_dynamic_type, solver_eigenproblem_finalise(), solver_eigenproblem_initialise(), solver_eigenproblem_type, solver_geometric_transformation_type, solver_geometrictransformationfinalise(), solver_geometrictransformationinitialise(), solver_linear_finalise(), solver_linear_initialise(), solver_linear_type, solver_nonlinear_finalise(), solver_nonlinear_initialise(), solver_nonlinear_type, solver_optimiser_finalise(), solver_optimiser_initialise(), and solver_optimiser_type.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solver_variables_dynamic_field_update ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Updates the dependent variables from the solver solution for dynamic solvers.

Parameters
solverA pointer the solver to update the variables from
[out]errThe error code
[out]errorThe error string

Definition at line 21447 of file solver_routines.f90.

References solver_dynamic_first_degree, solver_dynamic_first_order, solver_dynamic_nonlinear, solver_dynamic_second_degree, solver_dynamic_second_order, and solver_dynamic_third_degree.

Referenced by solver_dynamic_solve().

subroutine, public solver_routines::solver_variables_dynamic_nonlinear_update ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Update the field values form the dynamic factor * current solver values AND add in mean predicted displacements.

Parameters
solverA pointer the solver to update the variables from
[out]errThe error code
[out]errorThe error string

Definition at line 22069 of file solver_routines.f90.

References solver_dynamic_first_degree, solver_dynamic_second_degree, and solver_dynamic_third_degree.

subroutine, public solver_routines::solver_variables_field_update ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Updates the dependent variables from the solver solution for static solvers.

Parameters
solverA pointer the solver to update the variables from
[out]errThe error code
[out]errorThe error string

Definition at line 22404 of file solver_routines.f90.

Referenced by solver_linear_solve().

subroutine, public solver_routines::solver_variablesdynamicfieldpreviousvaluesupdate ( type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Updates the previous values from the solver solution for dynamic solvers.

Parameters
solverA pointer the solver to update the variables from
[out]errThe error code
[out]errorThe error string

Definition at line 21936 of file solver_routines.f90.

References solver_dynamic_nonlinear, solver_dynamic_second_degree, and solver_dynamic_third_degree.

subroutine, public solver_routines::solverequations_boundaryconditionscreatefinish ( type(solver_equations_type), intent(in), pointer  SOLVER_EQUATIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Finishes the creation of boundary conditions for the given solver equations.

Parameters
[in]solver_equationsA pointer to the solver equations to create boundary conditions for
[out]errThe error code
[out]errorThe error string

Definition at line 7630 of file solver_routines.f90.

References solver_dae_create_finish(), solver_dae_type, solver_dynamic_create_finish(), solver_dynamic_type, solver_eigenproblem_create_finish(), solver_eigenproblem_type, solver_linear_create_finish(), solver_linear_type, solver_nonlinear_create_finish(), and solver_nonlinear_type.

subroutine, public solver_routines::solverequations_boundaryconditionscreatestart ( type(solver_equations_type), intent(in), pointer  SOLVER_EQUATIONS,
type(boundary_conditions_type), intent(out), pointer  BOUNDARY_CONDITIONS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Starts the creation of boundary conditions for the given solver equations, and returns a pointer to the boundary conditions.

Parameters
[in]solver_equationsA pointer to the solver equations to create boundary conditions for
[out]boundary_conditionsOn return, a pointer the boundary conditions
[out]errThe error code
[out]errorThe error string

Definition at line 7696 of file solver_routines.f90.

subroutine, public solver_routines::solverequations_jacobianmatrixget ( type(solver_equations_type), intent(in), pointer  solverEquations,
type(distributed_matrix_type), intent(inout), pointer  matrix,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Get the Jacobian matrix from the solver equations matrices for nonlinear solver equations.

Parameters
[in]solverequationsThe solver equations to get the Jacobian matrix for
[in,out]matrixOn return, the solver equations Jacobian matrix
[out]errThe error code
[out]errorThe error string

Definition at line 7933 of file solver_routines.f90.

References solverequations_matrixget().

subroutine, public solver_routines::solverequations_matrixget ( type(solver_equations_type), intent(in), pointer  solverEquations,
integer(intg), intent(in)  matrixIndex,
type(distributed_matrix_type), intent(inout), pointer  matrix,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Get a solver matrix from the solver equations matrices.

Parameters
[in]solverequationsThe solver equations to get the matrix for
[in]matrixindexThe solver matrix index to get
[in,out]matrixOn return, the requested solver matrix
[out]errThe error code
[out]errorThe error string

Definition at line 7880 of file solver_routines.f90.

Referenced by solverequations_jacobianmatrixget().

subroutine, public solver_routines::solverequations_numberofmatricesget ( type(solver_equations_type), intent(in), pointer  solverEquations,
integer(intg), intent(out)  numberOfMatrices,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Get the number of solver matrices for the solver equations.

Parameters
[in]solverequationsThe solver equations to get the number of matrices for
[out]numberofmatricesThe number of matrices for the solver equations
[out]errThe error code
[out]errorThe error string

Definition at line 7845 of file solver_routines.f90.

subroutine, public solver_routines::solverequations_residualvectorget ( type(solver_equations_type), intent(in), pointer  solverEquations,
type(distributed_vector_type), intent(inout), pointer  residualVector,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Get the residual vector from the solver equations for nonlinear problems.

Parameters
[in]solverequationsThe solver equations to get the residual vector for
[in,out]residualvectorOn return, the solver residual vector
[out]errThe error code
[out]errorThe error string

Definition at line 8022 of file solver_routines.f90.

subroutine, public solver_routines::solverequations_rhsvectorget ( type(solver_equations_type), intent(in), pointer  solverEquations,
type(distributed_vector_type), intent(inout), pointer  rhsVector,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Get the right hand side vector from the solver equations.

Parameters
[in]solverequationsThe solver equations to get the right hand side vector for
[in,out]rhsvectorOn return, the solver right hand side vector
[out]errThe error code
[out]errorThe error string

Definition at line 8065 of file solver_routines.f90.

subroutine, public solver_routines::solverequations_vectorget ( type(solver_equations_type), intent(in), pointer  solverEquations,
integer(intg), intent(in)  matrixIndex,
type(distributed_vector_type), intent(inout), pointer  vector,
integer(intg), intent(out)  err,
type(varying_string), intent(out)  error 
)

Get the vector assiciated with a solver matrix from the solver equations matrices.

Parameters
[in]solverequationsThe solver equations to get the vector for
[in]matrixindexThe solver matrix index to get the vector for
[in,out]vectorOn return, the requested solver matrix vector
[out]errThe error code
[out]errorThe error string

Definition at line 7965 of file solver_routines.f90.

subroutine, public solver_routines::solvers_create_finish ( type(solvers_type), pointer  SOLVERS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Finish the creation of solvers.

Parameters
solversA pointer to the solvers to finish the creation of
[out]errThe error code
[out]errorThe error string

Definition at line 22598 of file solver_routines.f90.

References solver_create_finish().

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solvers_create_start ( type(control_loop_type), pointer  CONTROL_LOOP,
type(solvers_type), pointer  SOLVERS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Start the creation of a solvers for the control loop.

Parameters
control_loopA pointer to the control loop to create the solvers for
solversOn exit, a pointer to the solvers. Must not be associated on entry.
[out]errThe error code
[out]errorThe error string

Definition at line 22651 of file solver_routines.f90.

References solvers_initialise().

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solvers_destroy ( type(solvers_type), pointer  SOLVERS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Destroys the solvers.

Parameters
solversA pointer to the solvers to destroy
[out]errThe error code
[out]errorThe error string

Definition at line 22699 of file solver_routines.f90.

References solvers_finalise().

Referenced by control_loop_routines::control_loop_finalise(), and control_loop_routines::control_loop_solvers_destroy().

subroutine solver_routines::solvers_finalise ( type(solvers_type), pointer  SOLVERS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Finalises the solvers and deallocates all memory.

Parameters
solversA pointer to the solvers to finalise
[out]errThe error code
[out]errorThe error string

Definition at line 22727 of file solver_routines.f90.

References solver_finalise().

Referenced by solvers_destroy(), and solvers_initialise().

subroutine solver_routines::solvers_initialise ( type(control_loop_type), pointer  CONTROL_LOOP,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)
private

Initialises the solvers for a control loop.

Parameters
control_loopA pointer to the control loop to initialise the solvers for
[out]errThe error code
[out]errorThe error string

Definition at line 22759 of file solver_routines.f90.

References solver_initialise(), and solvers_finalise().

Referenced by solvers_create_start().

subroutine, public solver_routines::solvers_number_set ( type(solvers_type), pointer  SOLVERS,
integer(intg), intent(in)  NUMBER_OF_SOLVERS,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Sets/changes the number of solvers.

Parameters
solversA pointer to the solvers to set the number for
[in]number_of_solversThe number of solvers to set
[out]errThe error code
[out]errorThe error string

Definition at line 22805 of file solver_routines.f90.

References solver_finalise(), and solver_initialise().

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_equation_problem_setup(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), and stokes_equations_routines::stokes_problem_setup().

subroutine, public solver_routines::solvers_solver_get ( type(solvers_type), pointer  SOLVERS,
integer(intg), intent(in)  SOLVER_INDEX,
type(solver_type), pointer  SOLVER,
integer(intg), intent(out)  ERR,
type(varying_string), intent(out)  ERROR 
)

Returns a pointer to the specified solver in the list of solvers.

Parameters
solversA pointer to the solvers to get the solver for
[in]solver_indexThe specified solver to get
solverOn exit, a pointer to the specified solver. Must not be associated on entry.
[out]errThe error code
[out]errorThe error string

Definition at line 22876 of file solver_routines.f90.

Referenced by advection_equation_routines::advection_equation_problem_linear_setup(), advection_diffusion_equation_routines::advectiondiffusion_presolvegetsourcevalue(), advection_diffusion_equation_routines::advectiondiffusion_presolvestorecurrentsoln(), advection_diffusion_equation_routines::advectiondiffusion_problemlinearsetup(), biodomain_equation_routines::biodomain_control_loop_post_loop(), biodomain_equation_routines::biodomain_equation_problem_setup(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_compute_titin(), bioelectric_finite_elasticity_routines::bioelectric_finite_elasticity_problem_setup(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_computefibrestretch(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_controllooppostloop(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_convergencecheck(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_forcelengthvelocityrelation(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_independentfieldinterpolate(), bioelectric_finite_elasticity_routines::bioelectricfiniteelasticity_updategeometricfield(), burgers_equation_routines::burgers_equation_problem_setup(), darcy_equations_routines::darcy_control_time_loop_pre_loop(), darcy_equations_routines::darcy_equation_post_solve_set_mass_increase(), darcy_equations_routines::darcy_equation_pre_solve(), darcy_equations_routines::darcy_equation_problem_setup(), darcy_equations_routines::darcy_presolvegetsoliddisplacement(), darcy_equations_routines::darcy_presolveupdatematrixproperties(), diffusion_advection_diffusion_routines::diffusion_advection_diffusion_problem_setup(), diffusion_diffusion_routines::diffusion_diffusion_problem_setup(), diffusion_equation_routines::diffusion_equation_control_loop_post_loop(), diffusion_equation_routines::diffusion_equation_problem_linear_setup(), diffusion_equation_routines::diffusion_equation_problem_nonlinear_setup(), diffusion_equation_routines::diffusion_presolvegetsourcevalue(), diffusion_equation_routines::diffusion_presolvestorecurrentsolution(), finite_elasticity_darcy_routines::elasticity_darcy_control_loop_post_loop(), finite_elasticity_darcy_routines::elasticity_darcy_control_loop_pre_loop(), finite_elasticity_darcy_routines::elasticity_darcy_problem_setup(), finite_elasticity_fluid_pressure_routines::elasticity_fluid_pressure_problem_setup(), finite_elasticity_routines::finite_elasticity_problem_setup(), finite_elasticity_routines::finiteelasticity_contactproblemsetup(), finite_elasticity_routines::finiteelasticity_controltimelooppreloop(), finite_elasticity_routines::finiteelasticity_presolvegetsoliddisplacement(), fitting_routines::fitting_problem_standard_setup(), fitting_routines::fitting_problem_vectordata_setup(), fsi_routines::fsi_control_loop_post_loop(), fsi_routines::fsi_post_solve(), fsi_routines::fsi_problem_setup(), helmholtz_equations_routines::HELMHOLTZ_EQUATION_PROBLEM_STANDARD_SETUP::helmholtz_equation_problem_standard_setup(), hamilton_jacobi_equations_routines::HJ_EQUATION_PROBLEM_STANDARD_SETUP::hj_equation_problem_standard_setup(), laplace_equations_routines::laplace_equation_problem_generalised_setup(), laplace_equations_routines::laplace_equation_problem_standard_setup(), linear_elasticity_routines::linear_elasticity_problem_setup(), monodomain_equations_routines::MONODOMAIN_CONTROL_LOOP_POST_LOOP::monodomain_control_loop_post_loop(), monodomain_equations_routines::MONODOMAIN_EQUATION_PROBLEM_SUBTYPE_SETUP::monodomain_equation_problem_subtype_setup(), multi_compartment_transport_routines::MULTI_COMPARTMENT_TRANSPORT_PROBLEM_SETUP::multi_compartment_transport_problem_setup(), navier_stokes_equations_routines::NAVIER_STOKES_POST_SOLVE::navier_stokes_post_solve(), navier_stokes_equations_routines::NAVIER_STOKES_PRE_SOLVE::navier_stokes_pre_solve(), navier_stokes_equations_routines::NAVIER_STOKES_PRE_SOLVE_ALE_UPDATE_MESH::navier_stokes_pre_solve_ale_update_mesh(), navier_stokes_equations_routines::NAVIER_STOKES_PROBLEM_SETUP::navier_stokes_problem_setup(), navier_stokes_equations_routines::NavierStokes_PreSolveUpdateBoundaryConditions::navierstokes_presolveupdateboundaryconditions(), poiseuille_equations_routines::poiseuille_equation_problem_static_setup(), poisson_equations_routines::poisson_pre_solve_update_ppe_mesh(), poisson_equations_routines::poisson_pre_solve_update_ppe_source(), poisson_equations_routines::poisson_problemextracellularbidomainsetup(), poisson_equations_routines::poisson_problemlinearsourcesetup(), poisson_equations_routines::poisson_problemnonlinearsourcesetup(), poisson_equations_routines::poisson_problempressurepoissonsetup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_CONTROL_LOOP_POST_LOOP::reaction_diffusion_control_loop_post_loop(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_EQUATION_PROBLEM_SETUP::reaction_diffusion_equation_problem_setup(), reaction_diffusion_equation_routines::REACTION_DIFFUSION_POST_SOLVE::reaction_diffusion_post_solve(), stokes_equations_routines::stokes_post_solve(), stokes_equations_routines::stokes_pre_solve(), stokes_equations_routines::stokes_pre_solve_ale_update_mesh(), and stokes_equations_routines::stokes_problem_setup().