head	1.9;
access;
symbols
	charm6_1:1.9
	charm_6_0_1:1.9
	charm6_0_1:1.9
	charm6_0:1.9
	ChaNGa_1-0:1.9
	charm5_9:1.6;
locks; strict;
comment	@# @;


1.9
date	2005.07.08.17.16.16;	author wilmarth;	state Exp;
branches;
next	1.8;

1.8
date	2005.06.14.00.03.03;	author schak;	state Exp;
branches;
next	1.7;

1.7
date	2005.06.13.22.34.45;	author wilmarth;	state Exp;
branches;
next	1.6;

1.6
date	2005.04.14.16.33.16;	author wilmarth;	state Exp;
branches;
next	1.5;

1.5
date	2005.03.24.00.12.45;	author schak;	state Exp;
branches;
next	1.4;

1.4
date	2005.03.22.23.34.30;	author schak;	state Exp;
branches;
next	1.3;

1.3
date	2004.07.02.00.26.31;	author schak;	state Exp;
branches;
next	1.2;

1.2
date	2004.05.04.22.36.58;	author wilmarth;	state Exp;
branches;
next	1.1;

1.1
date	2004.04.09.02.06.18;	author wilmarth;	state Exp;
branches;
next	;


desc
@@


1.9
log
@Added coarsening bail-out in the case of coarsening around a vertex of degree 3.Made this and other coarsening bailouts increment the nonCoarsenCount flag on the relevant element.  This causes coarsening to avoid a retry.  These still need to be reset when new coarsening starts and when elements are altered by other means.
Also added a new test program for the purpose of beating on the code.
Task: TMRC2D
@
text
@OPTS+= #-g -Wall #-O -DCMK_OPTIMIZE=1 -DCMK_MEMCHECKS_OFF=1
CHARMDIR=../../../../
CHARMC=$(CHARMDIR)/bin/charmc $(OPTS)

OBJS=cst_nl.o pgm.o 
OBJS1=cst_nl.o pgm-coarsen.o
OBJS2=cst_nl.o pgm-remesh.o
OBJS3=cst_nl.o pgm-test.o

LIB=libmodulerefine
DEST=$(CHARMDIR)/lib/$(LIB).a
LOBJS=ref.o edge.o element.o tri.o refine.o femrefine.o
HEADERS=refine.h refinef.h femrefine.h femrefinef.h

all: $(DEST) pgm coarse remesh test

pgm: $(DEST) $(OBJS)
	$(CHARMC) -L. -o pgm $(OBJS) -language fem -module netfem -module refine -memory paranoid

coarse: $(DEST) $(OBJS1)
	$(CHARMC) -L. -o coarse $(OBJS1) -language fem -module netfem -module refine -memory paranoid

remesh: $(DEST) $(OBJS2)
	$(CHARMC) -L. -o remesh $(OBJS2) -language fem -module netfem -module refine -memory paranoid

test: $(DEST) $(OBJS3)
	$(CHARMC) -L. -o test $(OBJS3) -language fem -module netfem -module refine -memory paranoid

pgm.o: pgm.C pgm.h
	$(CHARMC) -c pgm.C

pgm-coarsen.o: pgm-coarsen.C pgm.h
	$(CHARMC) -c pgm-coarsen.C

pgm-remesh.o: pgm-remesh.C pgm.h
	$(CHARMC) -c pgm-remesh.C

pgm-test.o: pgm-test.C pgm.h
	$(CHARMC) -c pgm-test.C

cst_nl.o: cst_nl.C pgm.h
	$(CHARMC) -c cst_nl.C

$(DEST): $(LOBJS) $(HEADERS)
	$(CHARMC) $(LOBJS) -o $@@
	cp $(HEADERS) $(CHARMDIR)/include/

refine.o: refine.C refine.h tri.h
	$(CHARMC) -c refine.C

femrefine.o: femrefine.C femrefine.h refine.h
	$(CHARMC) -c femrefine.C

tri.o:	tri.C tri.h refine.def.h refine.decl.h
	$(CHARMC) -c tri.C

tri.h: refine.decl.h

refine.def.h refine.decl.h:	tri.ci
	$(CHARMC) tri.ci

element.o:	element.C element.h
	$(CHARMC) -c element.C

edge.o:	edge.C edge.h
	$(CHARMC) -c edge.C

ref.o:	ref.C ref.h refine.def.h refine.decl.h
	$(CHARMC) -c ref.C

clean:	
	rm -f *.*de*.h *.o pgm 
@


1.8
log
@Update number of elements correctly
@
text
@d8 1
d15 1
a15 1
all: $(DEST) pgm coarse remesh
d26 3
d38 3
@


1.7
log
@Changed refinement to use sorted list of elements by largest angle.
@
text
@d23 1
a23 1
	$(CHARMC) -L. -o remesh $(OBJS2) -language fem -module netfem -module refine #-memory paranoid
@


1.6
log
@Fixed a bug in the coarsening code, now both refinement and coarsening run for at least a single processor.  Adding a remeshing program whose first goal is to test if refinement and coarsening can work together.  So far, no.  The remeshing program works on a stretched out mesh, so ultimately, it will show us if combinations of refinement and coarsening can be used to improve mesh quality, thereby acting as a parallel remeshing tool.
@
text
@d23 1
a23 1
	$(CHARMC) -L. -o remesh $(OBJS2) -language fem -module netfem -module refine -memory paranoid
@


1.5
log
@Changed makefile
@
text
@d7 1
d14 1
a14 1
all: $(DEST) pgm coarse
d22 3
d31 3
@


1.4
log
@Changed the makefile so that it uses charmc and not ar
@
text
@d1 1
a1 1
OPTS=-g -Wall #-O -DCMK_OPTIMIZE=1 -DCMK_MEMCHECKS_OFF=1
@


1.3
log
@added coarsening
@
text
@d8 2
a9 1
DEST=$(CHARMDIR)/lib/libmodulerefine.a
d31 1
a31 1
	$(AR) cr $@@ $(LOBJS)
@


1.2
log
@Fixed an init bug in the newMesh code.  Added orientation preservation. Since a new node/edge numbering relationship exists in this version of the code, I needed to change how opnode was derived from longEdge in refine.C. This code runs up to a point and then fails.  It looks like the interface is adding the new node every time a split is performed (so duplicate nodes are added for the two sides of s split).
@
text
@d5 2
a6 1
OBJS=cst_nl.o pgm.o
d12 1
a12 1
all: $(DEST) pgm
d17 3
d23 3
@


1.1
log
@Checking in my 2D mesh refinement and coarsening code for Sayantan to abuse.
@
text
@d2 1
a2 1
CHARMDIR=../../../../net-linux
@

