diff options
author | pants <jaron@kent-dobias.com> | 2016-09-09 14:33:56 -0400 |
---|---|---|
committer | pants <jaron@kent-dobias.com> | 2016-09-09 14:33:56 -0400 |
commit | 03de79b8c5ebcc206e3450dfbc701211d9c254b0 (patch) | |
tree | ea1882e66605bbfcf257692c53f45bf1c4d0d2db /src/net_voltages.c | |
parent | bf525955316995a56b9fd1e66b9345cdf4ba3561 (diff) | |
download | fuse_networks-03de79b8c5ebcc206e3450dfbc701211d9c254b0.tar.gz fuse_networks-03de79b8c5ebcc206e3450dfbc701211d9c254b0.tar.bz2 fuse_networks-03de79b8c5ebcc206e3450dfbc701211d9c254b0.zip |
more refactoring
Diffstat (limited to 'src/net_voltages.c')
-rw-r--r-- | src/net_voltages.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/net_voltages.c b/src/net_voltages.c new file mode 100644 index 0000000..dedf5b2 --- /dev/null +++ b/src/net_voltages.c @@ -0,0 +1,22 @@ + +#include "fracture.h" + +double *net_voltages(const net_t *net, cholmod_common *c) { + cholmod_dense *b = net->boundary_cond; + cholmod_factor *factor = net->factor; + + cholmod_dense *x = CHOL_F(solve)(CHOLMOD_A, factor, b, c); + + if (((double *)x->x)[0] != ((double *)x->x)[0]) { + printf("GET_VOLTAGE: value is NaN\n"); + exit(EXIT_FAILURE); + } + + double *voltages = (double *)x->x; + x->x = NULL; + + CHOL_F(free_dense)(&x, c); + + return voltages; +} + |