From e0e4360b174c7a13f47f824f1c665435cbf3b1df Mon Sep 17 00:00:00 2001 From: dapogny Date: Wed, 26 Feb 2025 16:49:15 +0100 Subject: [PATCH] The following command line can now be used for lsopen mode: mmg2d_O3 domain.mesh -lsopen -phi [first ls function].sol -psi [second ls function].sol -hmin ... -hmax ... -hausd ... -hgrad 1.3 --- src/mmg2d/libmmg2d_tools.c | 27 ++++++++++++++++++++++++++- src/mmg2d/mmg2d.c | 5 +++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/mmg2d/libmmg2d_tools.c b/src/mmg2d/libmmg2d_tools.c index 76e88e35d..a1c6ad9be 100644 --- a/src/mmg2d/libmmg2d_tools.c +++ b/src/mmg2d/libmmg2d_tools.c @@ -371,7 +371,8 @@ int MMG2D_parsar(int argc,char *argv[],MMG5_pMesh mesh,MMG5_pSol met,MMG5_pSol s if ( ++i < argc && isascii(argv[i][0]) && argv[i][0]!='-') { if ( !MMG2D_Set_outputMeshName(mesh,argv[i]) ) return 0; - }else{ + } + else{ fprintf(stderr,"\nMissing filname for %s\n",argv[i-1]); MMG2D_usage(argv[0]); return 0; @@ -386,6 +387,30 @@ int MMG2D_parsar(int argc,char *argv[],MMG5_pMesh mesh,MMG5_pSol met,MMG5_pSol s return 0; } break; + case 'p': + if ( !strcmp(argv[i],"-phi") ) { + if ( ++i < argc && isascii(argv[i][0]) && argv[i][0]!='-' ) { + if ( !MMG2D_Set_inputSolName(mesh,sol,argv[i]) ) + return 0; + } + else { + fprintf(stderr,"\nMissing filname for %s\n",argv[i-1]); + MMG2D_usage(argv[0]); + return 0; + } + } + else if ( !strcmp(argv[i],"-psi") ) { + if ( ++i < argc && isascii(argv[i][0]) && argv[i][0]!='-' ) { + if ( !MMG2D_Set_inputSolName(mesh,met,argv[i]) ) + return 0; + } + else { + fprintf(stderr,"\nMissing filname for %s\n",argv[i-1]); + MMG2D_usage(argv[0]); + return 0; + } + } + break; case 'r': if ( !strcmp(argv[i],"-rmc") ) { if ( !MMG2D_Set_dparameter(mesh,met,MMG2D_DPARAM_rmc,0) ) diff --git a/src/mmg2d/mmg2d.c b/src/mmg2d/mmg2d.c index bd30e92ff..33904a411 100644 --- a/src/mmg2d/mmg2d.c +++ b/src/mmg2d/mmg2d.c @@ -274,7 +274,7 @@ int MMG2D_defaultOption(MMG5_pMesh mesh,MMG5_pSol met,MMG5_pSol sol) { int main(int argc,char *argv[]) { MMG5_pMesh mesh; - MMG5_pSol sol,met,disp,ls; + MMG5_pSol sol,met,disp,ls,psi; int ier,ierSave,fmtin,fmtout; char stim[32],*ptr; @@ -302,6 +302,7 @@ int main(int argc,char *argv[]) { met = NULL; ls = NULL; disp = NULL; + psi = NULL; if ( !MMG2D_Init_mesh(MMG5_ARG_start, MMG5_ARG_ppMesh,&mesh,MMG5_ARG_ppMet,&met, @@ -374,7 +375,7 @@ int main(int argc,char *argv[]) { } MMG5_DEL_MEM(mesh,ls->namein); } - + if ( mesh->info.lag >= 0 || mesh->info.iso || mesh->info.isosurf || mesh->info.isoopen ) { /* displacement or isovalue are mandatory */ if ( MMG2D_loadSol(mesh,sol,sol->namein) < 1 ) {