Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/toolboxes #1769

Merged
merged 144 commits into from
Feb 27, 2022
Merged

Feature/toolboxes #1769

merged 144 commits into from
Feb 27, 2022

Conversation

vincentchabannes
Copy link
Member

@vincentchabannes vincentchabannes commented Jan 28, 2022

  • Have you checked to ensure there aren't other open Pull Requests for the same change?
  • Have you added an explanation of what your changes do and why you'd like us to include them?
  • Have you written new tests for your changes?
  • Have you successfully run the Feel++ testsuite with your changes locally?
  • Have you written Doxygen comments in your contribution ?

WARNING : these changes has required to fix all json (or almost). This is the first phase. The next phase will be full refactoring of boundaryconditions

@@ -464,8 +464,11 @@ Backend<T,SizeT>::nlSolve( sparse_matrix_ptrtype& A,
}
else if ( !ret.isConverged() )
{
LOG(ERROR) << "\n[backend] non-linear solver fail";
LOG(ERROR) << "Backend " << M_prefix << " : non-linear solver failed to converge" << std::endl;
if ( this->worldComm().isMasterRank() )
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LOG() is supposed to do that, isn't it the case ?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or may be it is the wrong WorldComm ?

exit(1);
if ( !M_p.contains("key") )
{
CHECK( false ) << "invalid key";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a more explicit message here to help find where could be the problem

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

indeed, I will review errors when exception will be full operational

auto const& j_key = M_p.at("key");
if ( !j_key.is_string() )
{
CHECK( false ) << "invalid key";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

idem

@@ -985,8 +985,14 @@ FLUIDMECHANICS_CLASS_TEMPLATE_TYPE::init( bool buildModelAlgebraicFactory )
this->log("FluidMechanics","init", "start" );
this->timerTool("Constructor").start();

if ( this->physics().empty() )
this->initPhysics( this->keyword(), this->modelProperties().models() );
#if 1
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to be removed....

@@ -216,7 +216,10 @@ MixedPoissonElasticity<Dim,Order,G_Order,E_Order>::assembleF_Elasticity()
for( auto const& pairMat : M_ElasticityModel->modelProperties().materials() )
{
auto material = pairMat.second;
#if 0
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably an unfinished business

toolboxes/feel/feelmodels/heat/heat.cpp Show resolved Hide resolved
nl::json subPt;
subPt.emplace( "time mode", std::string( (this->isStationary())?"Stationary":"Transient") );
p["Physics"] = subPt;
p["Physics2"] = subPt;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Physic2?

nl_case_t = cfpdes(dim=dim)
simulate(nl_case_t)
return not nl_case_t.checkResults()
# def test_cfpde_nlthermoelectric():
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

currently, can not work in seq and parallel together (sometimes work, sometimes not). I have also a strange behavior when the number of proc increase, maybe a bug somewhere, to investigate

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it was working in the automated tests via ctest in both seq and par cases.
when did you see the problem ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because the mesh is repartitioned and this partitioning is not always the same. The field loaded can be wrong (something crash if dofs are not compatible). Currently, in sequential we use a .msh and in // a partitioned mesh .json, both case can't be take into account in one config.
Another issue is when the number of proc increases (for example > 20 ), there is something wrong in the automatic diff I think but not very clear, I need to continue my investigation.

@vincentchabannes
Copy link
Member Author

@prudhomm I didn't see that you have approved the PR, so I will merge when the CI will be finished. I need to finish the doc, next week

@prudhomm
Copy link
Member

sorry I thought I pinged you about that. took me some time to go through all the code

@prudhomm
Copy link
Member

@vincentchabannes vincentchabannes merged commit 7fc59b4 into develop Feb 27, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants