From: <hi...@us...> - 2008-10-29 10:05:25
|
Revision: 5390 http://octave.svn.sourceforge.net/octave/?rev=5390&view=rev Author: highegg Date: 2008-10-29 10:05:11 +0000 (Wed, 29 Oct 2008) Log Message: ----------- a number of fixes, prepare for 1.0.3 Modified Paths: -------------- trunk/octave-forge/extra/nlwing2/ChangeLog trunk/octave-forge/extra/nlwing2/inst/liftanalyze.m trunk/octave-forge/extra/nlwing2/inst/loadpolars.m trunk/octave-forge/extra/nlwing2/inst/loadwing.m trunk/octave-forge/extra/nlwing2/inst/makewing.m Modified: trunk/octave-forge/extra/nlwing2/ChangeLog =================================================================== --- trunk/octave-forge/extra/nlwing2/ChangeLog 2008-10-29 06:30:41 UTC (rev 5389) +++ trunk/octave-forge/extra/nlwing2/ChangeLog 2008-10-29 10:05:11 UTC (rev 5390) @@ -1,6 +1,12 @@ 2008-10-29 Jaroslav Hajek <hi...@gm...> * inst/loadwing.m: keyword change: mcamber->mchord + * inst/loadwing.m: Fix invalid expression, initialize pol properly. + * inst/loadpolars.m: Add error message for invalid input. + * inst/makewing.m: Implement simple unsymmetric case panelization, + improve docs. + * inst/liftanalyze.m: Warn if maximum lift occurs at the end of a + polar. 2008-10-02 Jaroslav Hajek <hi...@gm...> Modified: trunk/octave-forge/extra/nlwing2/inst/liftanalyze.m =================================================================== --- trunk/octave-forge/extra/nlwing2/inst/liftanalyze.m 2008-10-29 06:30:41 UTC (rev 5389) +++ trunk/octave-forge/extra/nlwing2/inst/liftanalyze.m 2008-10-29 10:05:11 UTC (rev 5390) @@ -34,6 +34,9 @@ if (any (cl(imin+1:imax) < cl(imin:imax-1))) warning ("liftanalyze: multimodal lift curve"); endif + if (imax == length (cl)) + warning ("liftanalyze: maximum lift at end of lift curve"); + endif a0 = interp1 (cl(imin:imax), al(imin:imax), 0, "extrap"); amax = al(imax); endfunction Modified: trunk/octave-forge/extra/nlwing2/inst/loadpolars.m =================================================================== --- trunk/octave-forge/extra/nlwing2/inst/loadpolars.m 2008-10-29 06:30:41 UTC (rev 5389) +++ trunk/octave-forge/extra/nlwing2/inst/loadpolars.m 2008-10-29 10:05:11 UTC (rev 5390) @@ -55,6 +55,8 @@ elseif (isstruct (pn)) pol = loadpolars ({pn.names}); [pol.z] = pn.z; + else + error ("loadpolars: invalid input"); endif endfunction Modified: trunk/octave-forge/extra/nlwing2/inst/loadwing.m =================================================================== --- trunk/octave-forge/extra/nlwing2/inst/loadwing.m 2008-10-29 06:30:41 UTC (rev 5389) +++ trunk/octave-forge/extra/nlwing2/inst/loadwing.m 2008-10-29 10:05:11 UTC (rev 5390) @@ -53,7 +53,7 @@ unwind_protect ac = []; - pol.z = []; + pol = []; ref.sym = true; mode = 0; @@ -92,7 +92,7 @@ endif ac(end+1,:) = [z,x,y,c,a]; elseif (mode == 2) - i = length (pol.z) + 1; + i = length (pol) + 1; [pol(i).z, pol(i).names] = sscanf (line, '%f %s', 'C'); endif endwhile Modified: trunk/octave-forge/extra/nlwing2/inst/makewing.m =================================================================== --- trunk/octave-forge/extra/nlwing2/inst/makewing.m 2008-10-29 06:30:41 UTC (rev 5389) +++ trunk/octave-forge/extra/nlwing2/inst/makewing.m 2008-10-29 10:05:11 UTC (rev 5390) @@ -20,7 +20,7 @@ % % -*- texinfo -*- -% @deftypefn{Function File} {wing =} makewing (acs, pols, ref, np, tfunc) +% @deftypefn{Function File} {wing =} makewing (acs, pols, ref, panels) % Creates the wing structure necessary for further computations. % @var{acs} is an N-by-5 array specifying the spanwise geometry description. % each row contains @code{[zac xac yac chord twist]} @@ -28,8 +28,10 @@ % distribution. @code{pols(i).z} is the spanwise coordinate, @code{pols(i).cl} % is the lift coefficient on local angle of attack dependence, etc. % @var{ref} contains the reference quantities. -% @var{np} specifies an approximate number of panels. -% @var{tfunc} is a handle to a function mapping +% @var{panels} specifies either an approximate number of panels, +% or directly the z-coordinates of panel vertices. In the latter case, +% @var{panels}(1) and @var{panels}(end) should match @var{acs}(1,1) and +% @var{acs}(end,1), respectively. % @end deftypefn function wing = makewing (ac, pols, ref, np = 80, zac = []) @@ -42,7 +44,9 @@ fi = linspace (0, pi/2, np+1).'; zac = zmx * sin (fi); else - error ("panelize: unsymmetric case not implemented") + zmxl = ozac(1); zmxu = ozac(end); + fi = linspace (0, pi/2, np/2+1)'; + zac = [zmxl * sin(fi(end:-1:2)); zmxu * sin(fi)]; endif endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |