void * hypre_SchwarzCreate() { hypre_SchwarzData *schwarz_data; HYPRE_Int variant; HYPRE_Int domain_type; HYPRE_Int overlap; HYPRE_Int num_functions; HYPRE_Int use_nonsymm; double relax_weight; /*----------------------------------------------------------------------- * Setup default values for parameters *-----------------------------------------------------------------------*/ /* setup params */ variant = 0; /* multiplicative Schwarz */ overlap = 1; /* minimal overlap */ domain_type = 2; /* domains generated by agglomeration */ num_functions = 1; use_nonsymm = 0; relax_weight = 1.0; schwarz_data = hypre_CTAlloc(hypre_SchwarzData,1); hypre_SchwarzSetVariant(schwarz_data, variant); hypre_SchwarzSetDomainType(schwarz_data, domain_type); hypre_SchwarzSetOverlap(schwarz_data, overlap); hypre_SchwarzSetNumFunctions(schwarz_data, num_functions); hypre_SchwarzSetNonSymm(schwarz_data, use_nonsymm); hypre_SchwarzSetRelaxWeight(schwarz_data, relax_weight); hypre_SchwarzDataDomainStructure(schwarz_data) = NULL; hypre_SchwarzDataABoundary(schwarz_data) = NULL; hypre_SchwarzDataScale(schwarz_data) = NULL; hypre_SchwarzDataVtemp(schwarz_data) = NULL; hypre_SchwarzDataDofFunc(schwarz_data) = NULL; return (void *) schwarz_data; }
HYPRE_Int HYPRE_SchwarzSetRelaxWeight( HYPRE_Solver solver, double relax_weight) { return( hypre_SchwarzSetRelaxWeight((void *) solver,relax_weight)); }