Skip to content

Commit

Permalink
Merge pull request #2128 from feelpp/2127-fix-time-dependent-truth-mo…
Browse files Browse the repository at this point in the history
…del-execution-in-crb

Resolves: #2127 fix parabolic CRB truth model
  • Loading branch information
prudhomm committed Jul 1, 2023
2 parents 3708ba2 + b46f9d1 commit 27d49af
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 17 deletions.
7 changes: 2 additions & 5 deletions mor/mor/feel/feelmor/crb.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1827,7 +1827,7 @@ CRB<TruthModelType>::offlineFixedPointPrimal(parameter_type const& mu )//, spars

for ( M_bdf_primal->start(u),M_bdf_primal_save->start(u);
!M_bdf_primal->isFinished() && !M_bdf_primal_save->isFinished();
M_bdf_primal->next() , M_bdf_primal_save->next() )
M_bdf_primal->next(u) , M_bdf_primal_save->next() )
{
int bdf_iter = M_bdf_primal->iteration();

Expand Down Expand Up @@ -1913,7 +1913,6 @@ CRB<TruthModelType>::offlineFixedPointPrimal(parameter_type const& mu )//, spars

}while( increment_norm > increment_fixedpoint_tol && iteration < max_fixedpoint_iterations );

M_bdf_primal->shiftRight( u );
if ( ! M_model->isSteady() )
{
u.close();
Expand Down Expand Up @@ -2066,7 +2065,7 @@ CRB<TruthModelType>::offlineFixedPointDual(parameter_type const& mu, element_ptr

for ( M_bdf_dual->start(udu),M_bdf_dual_save->start(udu);
!M_bdf_dual->isFinished() && !M_bdf_dual_save->isFinished();
M_bdf_dual->next() , M_bdf_dual_save->next() )
M_bdf_dual->next(udu) , M_bdf_dual_save->next() )
{

int bdf_iter = M_bdf_dual->iteration();
Expand Down Expand Up @@ -2150,8 +2149,6 @@ CRB<TruthModelType>::offlineFixedPointDual(parameter_type const& mu, element_ptr

}while( increment_norm > increment_fixedpoint_tol && iteration < max_fixedpoint_iterations );

M_bdf_dual->shiftRight( udu );

//check dual property
//double term1 = A->energy( udu, u );
//double term2 = Adu->energy( u, udu );
Expand Down
17 changes: 5 additions & 12 deletions mor/mor/feel/feelmor/crbmodel.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3615,7 +3615,7 @@ CRBModel<TruthModelType>::solveFemUsingOfflineEim( parameter_type const& mu )
double bdf_coeff ;
auto vec_bdf_poly = M_backend->newVector( Xh );

for( mybdf->start(*InitialGuess); !mybdf->isFinished(); mybdf->next() )
for( mybdf->start(*InitialGuess); !mybdf->isFinished(); mybdf->next(u) )
{
bdf_coeff = mybdf->polyDerivCoefficient( 0 );
auto bdf_poly = mybdf->polyDeriv();
Expand All @@ -3636,7 +3636,6 @@ CRBModel<TruthModelType>::solveFemUsingOfflineEim( parameter_type const& mu )
{
M_backend_primal->solve( _matrix=A , _solution=u, _rhs=Rhs, _rebuild=true);
}
mybdf->shiftRight(u);
}

return u;
Expand Down Expand Up @@ -3696,7 +3695,7 @@ CRBModel<TruthModelType>::solveFemMonolithicFormulation( parameter_type const& m
int iter=0;
double norm=0;

for( mybdf->start(*InitialGuess); !mybdf->isFinished(); mybdf->next() )
for( mybdf->start(*InitialGuess); !mybdf->isFinished(); mybdf->next(u) )
{
bdf_coeff = mybdf->polyDerivCoefficient( 0 );
auto bdf_poly = mybdf->polyDeriv();
Expand Down Expand Up @@ -3725,8 +3724,6 @@ CRBModel<TruthModelType>::solveFemMonolithicFormulation( parameter_type const& m
M_backend_primal->solve( _matrix=A , _solution=u, _rhs=F[0], _rebuild=true);
}

mybdf->shiftRight(u);

if( is_linear )
norm = 0;
else
Expand Down Expand Up @@ -3866,7 +3863,7 @@ CRBModel<TruthModelType>::solveFemUsingAffineDecompositionFixedPoint( parameter_
auto vec_bdf_poly = M_backend->newVector( Xh );


for( mybdf->start(*initialGuess); !mybdf->isFinished(); mybdf->next() )
for( mybdf->start(*initialGuess); !mybdf->isFinished(); mybdf->next(u) )
{
iter=0;
bdf_coeff = mybdf->polyDerivCoefficient( 0 );
Expand Down Expand Up @@ -3901,7 +3898,6 @@ CRBModel<TruthModelType>::solveFemUsingAffineDecompositionFixedPoint( parameter_
norm = this->computeNormL2( uold , u );
iter++;
} while( norm > increment_fixedpoint_tol && iter<max_fixedpoint_iterations );
mybdf->shiftRight(u);
}
return u;
}
Expand Down Expand Up @@ -4061,7 +4057,7 @@ CRBModel<TruthModelType>::solveFemDualMonolithicFormulation( parameter_type cons
udu=*dual_initial_field;
}

for( mybdf->start(*InitialGuess); !mybdf->isFinished(); mybdf->next() )
for( mybdf->start(*InitialGuess); !mybdf->isFinished(); mybdf->next(udu) )
{
bdf_coeff = mybdf->polyDerivCoefficient( 0 );
auto bdf_poly = mybdf->polyDeriv();
Expand Down Expand Up @@ -4094,8 +4090,6 @@ CRBModel<TruthModelType>::solveFemDualMonolithicFormulation( parameter_type cons
M_preconditioner_dual->setMatrix( Adu );

M_backend_dual->solve( _matrix=Adu , _solution=udu, _rhs=Rhs , _prec=M_preconditioner_dual);

mybdf->shiftRight(udu);
}

return udu;
Expand Down Expand Up @@ -4230,7 +4224,7 @@ CRBModel<TruthModelType>::solveFemDualUsingAffineDecompositionFixedPoint( parame
}


for( mybdf->start(udu); !mybdf->isFinished(); mybdf->next() )
for( mybdf->start(udu); !mybdf->isFinished(); mybdf->next(udu) )
{
iter=0;
bdf_coeff = mybdf->polyDerivCoefficient( 0 );
Expand Down Expand Up @@ -4271,7 +4265,6 @@ CRBModel<TruthModelType>::solveFemDualUsingAffineDecompositionFixedPoint( parame
norm = this->computeNormL2( uold , udu );
iter++;
} while( norm > increment_fixedpoint_tol && iter<max_fixedpoint_iterations );
mybdf->shiftRight(udu);
}
return udu;
}
Expand Down

0 comments on commit 27d49af

Please sign in to comment.