posts - 81, comments - 257, trackbacks - 0

Technical Computing

Modified False Position Method in C++ Accepting a Function Pointer

The modified false position method is fairly straightforward to implement. The method is described in most numerical methods texts in easily translatable pseudo code. The method requires evaluating the function during the solution process, requiring in a naïve implementation hard coding of the function being solved. Function pointers can be used to pass a general function to the method, so that one implementation can be used to solve various functions. In particular, member function pointers can be used to root solve a function for one of many independent variables. Consider for example, f(x,a), where you would like...

posted @ Wednesday, November 14, 2012 11:32 AM | Feedback (0) | Filed Under [ Technical Computing ]

NVIDIA GPU Technology Conference 2012

NVIDIA's CUDA is making headway into the CFD field with some exciting performance increases. As a researcher and developer working with CFD I am interested in learning as much as possible about how to use CUDA (or more generally the GPU) to enhance my simulation capabilities. NVIDIA is hosting a GPU Technology Conference in San Jose, California from May 14th to 17th (2012) which has many sessions on CUDA. In particular they have 29 sessions on CFD which are very interesting: Definitely check it out if you are interested in numerical simulations!  "GTC advances awareness of high performance computing, and...

posted @ Friday, April 27, 2012 7:07 PM | Feedback (4) | Filed Under [ Technical Computing School ]

Extrapolate Errors for p>3

Running some test cases pointed out that the extrapolation from first order Lagrange basis functions to those higher than third order cubic Lagrange basis functions were in error. The extrapolated functions had high degrees of oscillations. The bug has been reported to the developers. They have put in a check so that the first release will throw an error instead of attempting an extrapolation. So it's back to traditional interpolation methods. Keep this in mind when viewing the code from the last two posts.

posted @ Saturday, December 3, 2011 11:45 PM | Feedback (3) | Filed Under [ Technical Computing ]

A C++ Interpolation Class for Tabled Data

I have wrapped the interpolation method using the Fenics Project into a template class. The class is template on the interpolation basis function so that the user may choose the order of interpolation. The class also contains an array of y values so that it may serve as a table of values. Part of this is a map to the variable name for convenience when calling for tabled values. Since all the work goes into extrapolating to a higher basis function when the Constructor is called, lookups are cheap to retrieve. The cost should be about the...

posted @ Tuesday, November 29, 2011 12:27 PM | Feedback (1) | Filed Under [ Technical Computing ]

Interpolation/Curve Fitting in C++ with the Fenics Project in 1D, 2D and 3D

My recent research has been with the Fenics Project, which is an amazing finite element project. In general it provides the tools needed to solve differential equations with the finite element method. For some examples check out their website and view the demos and applications (my interest is in CFD). In my particular code I need to interpolate tabulated properties (steam tables) with some reasonable level of accuracy. The solution in MATLAB is straight forward, call interp1: y_i = interp1(xs, ys, x_i, 'cubic');  Where xs and ys are vectors of known x and y values and y_i is the interpolated...

posted @ Wednesday, November 23, 2011 4:07 PM | Feedback (0) | Filed Under [ Technical Computing ]

Differential Equations in Matlab

Matlab may be used to solve differential equations symbolically as well as numerically. Well, actually Maple is being used behind the scenes. This can be seen whenever an error occurs with the solver 'Error using ==> maple at 129'. Regardless, say you wanted to solve for a spring mass damper system under a forced oscillation:  m*d(d(x))+c*d(x)+k*(x)=f*cos(w*t)  The solution is lots of fun to do by hand, but faster and easier in Matlab using dsolve. Dsolve calls Maple to symbolically solve the system. The solver can solve for a single equation with boundary conditions or for systems of...

posted @ Tuesday, October 7, 2008 8:51 AM | Feedback (0) | Filed Under [ Technical Computing ]

A Programmer Takes the GRE

I am currently applying to graduate school (Aerospace Engineering) and need to take (and do well on) the GRE. I took it without preparation and did fairly well, well enough to meet requirements. However, I never like to 'meet requirements'. So back to the GRE for me, and this time I have to study! The most room for improvement was as expected on my verbal. This means studying vocab (oh no!). I talked to a few folks and did some research and found the common knowledge was to use flash cards and the study books. ...

posted @ Thursday, September 25, 2008 8:51 PM | Feedback (5) | Filed Under [ Technical Computing School ]

Visual Studio – Expand All Regions and RockScroll

Scott Hanselman recently made RockScroll available to the public here, The add-on, if you haven't tried it, is great. One of its most useful features is highlighting in red a selected keyword both inline and in the scroll bar. It allows you to quickly, and visually find all instances of a term. The add-on has a minor bug though, it doesn't account for collapsed regions. So if regions are collapsed the scrolling will not line up with the code. David Yack posted,, a list of some shortcuts which are particularly handy for...

posted @ Friday, August 22, 2008 9:46 PM | Feedback (2) | Filed Under [ Web Programming Technical Computing ]

SQL Server 2005 Scaling

I came across a great article on MSDN discussing various scaling options for SQL Server 2005, The article does a great job at relating data types and how they relate to scaling choices. The take away is that scaling choice is highly dependent on how the data is used by the application. For more information regarding the Peer-to-Peer scheme, this article is also a great reference for some design considerations  Table 1. Factors influencing the selection of scaleout solutions   Update FrequencyAbility to Change ApplicationData PartitionabilityData CouplingScalable Shared DatabasesRead Only.Little or no change required.No requirement.No requirement.Peer-to-Peer ReplicationRead mostly, no conflicts.Little...

posted @ Saturday, July 12, 2008 10:42 AM | Feedback (7) | Filed Under [ Web Programming Technical Computing ]

MATLAB Uncertainty Analysis

Performing an uncertainty analysis on a measurement can be tedious, taking the root sum square (RSS) of all of partials with their uncertainty. MATLAB's symbolic toolbox can speed things up, particularly when Excel cells are named the same as the symbols used. I wrote a quick MATLAB function to take the partials and perform the RSS. The first input is the symbolic expression to perform the uncertainty analysis upon. The second two parameters are the symbolic variables in the expression and the symbolic variables for the corresponding uncertainties.  function [f_u_total f_u] = uncertAnalysis(f, vars, vars_u) ...

posted @ Tuesday, May 27, 2008 4:17 PM | Feedback (6) | Filed Under [ Technical Computing ]

Full Technical Computing Archive

Powered by:
Powered By Subtext Powered By ASP.NET