revisit SBP Traits
This commit is contained in:
		@@ -115,7 +115,7 @@ impl<SBP: SbpOperator2d> System<SBP> {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl<UO: UpwindOperator2d> System<UO> {
 | 
			
		||||
impl<UO: UpwindOperator2d + SbpOperator2d> System<UO> {
 | 
			
		||||
    pub fn advance_upwind(&mut self, dt: Float) {
 | 
			
		||||
        let bc = BoundaryCharacteristics {
 | 
			
		||||
            north: BoundaryCharacteristic::This,
 | 
			
		||||
@@ -558,7 +558,7 @@ pub fn RHS_trad(
 | 
			
		||||
 | 
			
		||||
#[allow(non_snake_case)]
 | 
			
		||||
pub fn RHS_upwind(
 | 
			
		||||
    op: &dyn UpwindOperator2d,
 | 
			
		||||
    op: &dyn SbpOperator2d,
 | 
			
		||||
    k: &mut Field,
 | 
			
		||||
    y: &Field,
 | 
			
		||||
    metrics: &Metrics,
 | 
			
		||||
@@ -583,7 +583,14 @@ pub fn RHS_upwind(
 | 
			
		||||
 | 
			
		||||
    let ad_xi = &mut tmp.4;
 | 
			
		||||
    let ad_eta = &mut tmp.5;
 | 
			
		||||
    upwind_dissipation(op, (ad_xi, ad_eta), y, metrics, (&mut tmp.0, &mut tmp.1));
 | 
			
		||||
    let diss_op = op.upwind().expect("This is not an upwind operator");
 | 
			
		||||
    upwind_dissipation(
 | 
			
		||||
        &*diss_op,
 | 
			
		||||
        (ad_xi, ad_eta),
 | 
			
		||||
        y,
 | 
			
		||||
        metrics,
 | 
			
		||||
        (&mut tmp.0, &mut tmp.1),
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    azip!((out in &mut k.0,
 | 
			
		||||
                    eflux in &dE.0,
 | 
			
		||||
@@ -594,7 +601,7 @@ pub fn RHS_upwind(
 | 
			
		||||
        *out = (-eflux - fflux + ad_xi + ad_eta)/detj
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    SAT_characteristics(op.as_sbp(), k, y, metrics, boundaries);
 | 
			
		||||
    SAT_characteristics(op, k, y, metrics, boundaries);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[allow(clippy::many_single_char_names)]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user