1 #ifndef __CS_CDO_ANDERSON_H__ 2 #define __CS_CDO_ANDERSON_H__ 78 static const int mMax_aa = 4;
79 static const int AAStart = 0;
80 static const int aa_activated = 0;
81 static const double droptol_ = 50;
82 static const double beta_ = 0.0;
128 cs_sdm_square_init(mMax,
R_);
154 int n_rows = R->n_rows;
155 for (
int i=0 ; i<mMax-1 ; i++)
159 assert(R->n_cols == R->n_rows);
160 const double temp = sqrt(R->val[i*n_rows+i+1]*R->val[i*n_rows+i+1]+R->val[(i+1)*n_rows+i+1]*R->val[(i+1)*n_rows+i+1]);
162 const double c = R->val[i*n_rows+i+1]/temp;
163 const double s = R->val[(i+1)*n_rows+i+1]/temp;
165 R->val[i*n_rows+i+1] = temp;
166 R->val[(i+1)*n_rows+i+1]=0.0;
169 for (
int j=i+2 ; j<mMax ; j++)
171 const double temp0 = c*R->val[i*n_rows+j]+s*R->val[(i+1)*n_rows+j];
172 R->val[(i+1)*n_rows+j] = -s*R->val[i*n_rows+j]+c*R->val[(i+1)*n_rows+j];
173 R->val[i*n_rows+j] = temp0;
178 for (
int l=0 ; l<n_faces ; l++){
179 const double temp1 = c*Q_i[l] + s*Q_ip1[l];
180 Q_ip1[l] = -s*Q_i[l] + c*Q_ip1[l];
186 cs_sdm_square_init(R->n_rows, temp2);
190 for (
int i=0 ; i<mMax-1 ; i++){
191 for (
int j=i ; j<mMax-1 ; j++){
192 temp2->val[i*n_rows+j] = R->val[i*n_rows+j+1];
196 cs_sdm_copy(R, temp2);
197 cs_real_t *Q_imax = Q + (mMax-1)*n_faces;
198 for (
int i=0 ; i<n_faces ; i++){
int cs_log_printf(cs_log_t log, const char *format,...)
Print log info to a given log type.
Definition: cs_log.c:501
cs_real_t * DG_
Definition: cs_cdo_anderson.h:90
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
cs_real_t * gamma_
Definition: cs_cdo_anderson.h:93
void aa_init(const int mMax, const cs_lnum_t n_faces)
Definition: cs_cdo_anderson.h:105
cs_sdm_t * cs_sdm_square_create(int n_max_rows)
Allocate and initialize a cs_sdm_t structure Case of a square matrix.
Definition: cs_sdm.c:157
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
#define BFT_MALLOC(_ptr, _ni, _type)
Allocate memory for _ni elements of type _type.
Definition: bft_mem.h:62
void qrdelete(cs_real_t *Q, cs_sdm_t *R, int n_faces, int mMax)
Definition: cs_cdo_anderson.h:152
int mAA_
Definition: cs_cdo_anderson.h:84
cs_real_t * Q_
Definition: cs_cdo_anderson.h:91
cs_real_t * fold_
Definition: cs_cdo_anderson.h:87
cs_real_t * tempGamma_
Definition: cs_cdo_anderson.h:94
void aa_term()
Definition: cs_cdo_anderson.h:137
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
#define END_C_DECLS
Definition: cs_defs.h:511
cs_sdm_t * R_
Definition: cs_cdo_anderson.h:92
cs_real_t * df_
Definition: cs_cdo_anderson.h:89
cs_sdm_t * cs_sdm_free(cs_sdm_t *mat)
Free a cs_sdm_t structure.
Definition: cs_sdm.c:331
cs_real_t * gval
Definition: cs_cdo_anderson.h:86
cs_real_t * fval_
Definition: cs_cdo_anderson.h:85
int n_aa_iter
Definition: cs_cdo_anderson.h:83
cs_real_t * gold_
Definition: cs_cdo_anderson.h:88
#define BFT_FREE(_ptr)
Free allocated memory.
Definition: bft_mem.h:101