50 fprintf(stdout,
"\n ELAPSED TIME %s\n",stim);
66 int i,j,ret,npar,nbr,split;
67 MMG5_int ref,rin,rex,br;
68 char *ptr,buf[256],data[256];
77 if ( ptr ) *ptr =
'\0';
80 in = fopen(data,
"rb");
82 sprintf(data,
"%s",
"DEFAULT.mmgs");
83 in = fopen(data,
"rb");
89 fprintf(stdout,
"\n %%%% %s OPENED\n",data);
96 ret = fscanf(in,
"%255s",data);
97 if ( !ret || feof(in) )
break;
98 for (i=0; (size_t)i<strlen(data); i++) data[i] = tolower(data[i]);
101 if ( !strcmp(data,
"lsreferences") ) {
102 ret = fscanf(in,
"%d",&npar);
104 fprintf(stderr,
" %%%% Wrong format for lsreferences: %d\n",npar);
113 fgetpos(in,&position);
117 if ( strcmp(data,
"nosplit") ) {
118 fsetpos(in,&position);
129 else if ( !strcmp(data,
"parameters") ) {
133 fprintf(stderr,
" %%%% Wrong format for parameters: %d\n",npar);
137 fprintf(stderr,
" %%%% Too many local parameters %d. Abort\n",npar);
147 MMG_FSCANF(in,
"%" MMG5_PRId
" %255s ",&ref,buf);
148 ret = fscanf(in,
"%f %f %f",&fp1,&fp2,&hausd);
151 fprintf(stderr,
" %%%% Wrong format: %s\n",buf);
155 for (j=0; (size_t)j<strlen(buf); j++) buf[j] = tolower(buf[j]);
157 if ( !strcmp(buf,
"triangles") || !strcmp(buf,
"triangle") ) {
163 fprintf(stdout,
" %%%% Wrong format: %s\n",buf);
170 else if ( !strcmp(data,
"lsbasereferences") ) {
183 fprintf(stderr,
" %%%% Wrong format: %s\n",data);
211 if ( ptr ) *ptr =
'\0';
213 strcat(data,
".mmgs");
216 if ( !(out = fopen(data,
"wb")) ) {
217 fprintf(stderr,
"\n ** UNABLE TO OPEN %s.\n",data);
221 fprintf(stdout,
"\n %%%% %s OPENED\n",data);
231 fprintf(out,
"parameters\n %d\n",npar);
239 fprintf(stdout,
" -- WRITING COMPLETED\n");
277 fprintf(stderr,
"\n ## Error: %s: "
278 "unable to save of a local parameter file with"
279 " the default parameters values because local parameters"
280 " are provided.\n",__func__);
285 if (
mesh->
info.
imprim > 0 ) fprintf(stdout,
"\n -- INPUT DATA\n");
289 if ( met && met->
np && (met->
np !=
mesh->
np) ) {
290 fprintf(stderr,
"\n ## WARNING: WRONG SOLUTION NUMBER. IGNORED\n");
296 fprintf(stderr,
"\n ## WARNING: WRONG SOLUTION NUMBER. IGNORED\n");
304 fprintf(stdout,
" -- INPUT DATA COMPLETED. %s\n",stim);
311 fprintf(stdout,
"\n -- DEFAULT PARAMETERS COMPUTATION\n");
338 fprintf(stderr,
"\n ## Error: %s: unable to save the local parameters file.\n"
339 " Exit program.\n",__func__);
347int main(
int argc,
char *argv[]) {
350 int ier,ierSave,fmtin,fmtout;
355 setvbuf(stdout, NULL, _IOLBF, 1024);
356 setvbuf(stderr, NULL, _IOLBF, 1024);
359#ifndef MMG_COMPARABLE_OUTPUT
360 fprintf(stdout,
" -- MMGS, Release %s (%s) \n",MMG_VERSION_RELEASE,MMG_RELEASE_DATE);
361 fprintf(stdout,
" %s\n",MMG_COPYRIGHT);
362 fprintf(stdout,
" %s %s\n",__DATE__,__TIME__);
394 fprintf(stdout,
"\n -- INPUT DATA\n");
429 if (
ier < 1 ) {
break; }
434 fprintf(stderr,
"\n ## ERROR: UNABLE TO LOAD LEVEL-SET.\n");
439 fprintf(stdout,
" ## ERROR: UNABLE TO LOAD METRIC.\n");
447 fprintf(stderr,
"\n ## ERROR: WRONG DATA TYPE OR WRONG SOLUTION NUMBER.\n");
460 fprintf(stderr,
" ** %s NOT FOUND.\n",
mesh->
namein);
461 fprintf(stderr,
" ** UNABLE TO OPEN INPUT FILE.\n");
469 fprintf(stderr,
"\n ## ERROR: NO ISOVALUE DATA.\n");
482 fprintf(stdout,
" -- DATA READING COMPLETED. %s\n",stim);
495 fprintf(stdout,
"\n ## ERROR: IMPOSSIBLE TO PROVIDE BOTH A METRIC"
496 " AND A SOLUTION IN ADAPTATION MODE.\n");
506 fprintf(stdout,
"\n -- WRITING DATA FILE %s\n",
mesh->
nameout);
529 if ( met && met->
np ) {
539 if (
mesh->
info.
imprim > 0 ) fprintf(stdout,
" -- WRITING COMPLETED\n");
int MMG5_Compute_constantSize(MMG5_pMesh mesh, MMG5_pSol met, double *hsiz)
const char * MMG5_Get_formatName(enum MMG5_Format fmt)
int MMG5_Get_format(char *ptr, int fmt)
char * MMG5_Get_filenameExt(char *filename)
int MMGS_Set_iparameter(MMG5_pMesh mesh, MMG5_pSol sol, int iparam, MMG5_int val)
int MMGS_Set_localParameter(MMG5_pMesh mesh, MMG5_pSol sol, int typ, MMG5_int ref, double hmin, double hmax, double hausd)
int MMGS_Init_mesh(const int starter,...)
int MMGS_Set_lsBaseReference(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br)
int MMGS_Set_multiMat(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int ref, int split, MMG5_int rin, MMG5_int rout)
int MMGS_Free_names(const int starter,...)
MMG5_pMesh MMG5_pSol * sol
program main
Example for using mmglib (basic use)
void tminit(mytime *t, int maxtim)
Initialize mytime object.
void printim(double elps, char *stim)
Print real time.
void chrono(int cmode, mytime *ptt)
Function to measure time.
int MMGS_loadSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
int MMGS_loadMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMGS_saveMesh(MMG5_pMesh mesh, const char *filename)
int MMGS_saveMshMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMGS_saveSol(MMG5_pMesh mesh, MMG5_pSol met, const char *filename)
int MMGS_loadMesh(MMG5_pMesh mesh, const char *filename)
int MMGS_loadVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMGS_loadVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMGS_saveVtuMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMGS_loadVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMGS_saveVtkMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
int MMGS_saveVtpMesh(MMG5_pMesh mesh, MMG5_pSol sol, const char *filename)
LIBMMG_CORE_EXPORT int MMG5_unscaleMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol ls)
LIBMMG_CORE_EXPORT int MMG5_scaleMesh(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol ls)
int MMGS_mmgsls(MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pSol umet)
int MMGS_mmgslib(MMG5_pMesh mesh, MMG5_pSol met)
void MMGS_Set_commonFunc(void)
API headers for the mmgs library.
LIBMMGS_EXPORT int MMGS_parsar(int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol)
LIBMMGS_EXPORT int(* MMGS_doSol)(MMG5_pMesh mesh, MMG5_pSol met)
LIBMMGS_EXPORT void MMGS_setfunc(MMG5_pMesh mesh, MMG5_pSol met)
@ MMGS_IPARAM_numberOfLocalParam
@ MMGS_IPARAM_numberOfLSBaseReferences
@ MMGS_IPARAM_numberOfMat
#define MMGS_RETURN_AND_FREE(mesh, met, ls, val)
#define MMG5_STRONGFAILURE
#define MMG5_MMAT_NoSplit
#define _LIBMMG5_RETURN(mesh, sol, met, val)
static void MMG5_excfun(int sigid)
#define MMG5_FILESTR_LGTH
#define MMG_FSCANF(stream, format,...)
#define MMG5_DEL_MEM(mesh, ptr)
static int MMGS_defaultOption(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol)
static int MMGS_writeLocalParam(MMG5_pMesh mesh)
mytime MMG5_ctim[TIMEMAX]
static int MMG5_parsop(MMG5_pMesh mesh, MMG5_pSol met)
static void MMG5_endcod(void)
Cell for linked list of integer value.