Skip to content

Commit

Permalink
Added derivatives of L functions to Auxiliary.pm for use in the Jacob…
Browse files Browse the repository at this point in the history
…ian of the solver.
  • Loading branch information
jberger committed Sep 19, 2011
1 parent 6177df0 commit 085dc45
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion lib/Physics/UEMColumn/Auxiliary.pm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use Math::GSLx::ODEIV2;
use parent 'Exporter';
our %EXPORT_TAGS = (
constants => [ qw/ pi me qe epsilon_0 k vc / ],
model_funcs => [ qw/ L L_t L_z / ],
model_funcs => [ qw/ L L_t L_z dLdxi dL_tdxi dL_zdxi / ],
util_funcs => [ qw/ join_data / ],
materials => [ qw/ Ta / ],
);
Expand Down Expand Up @@ -73,6 +73,32 @@ sub L_z {
return 3 * ($xi**2) * ( $xi * $L - 1) / (($xi**2) - 1)
}

sub dL_tdxi {
my ($xi) = @_;

return -3/2 * ((($xi**4)-1)*dLdxi($xi) - 4*$xi*L($xi) + ($xi**2) + 2) / ((($xi**2)-1)**2);
}

sub dL_zdxi {
my ($xi) = @_;

return 3*$xi * (($xi**2)*(($xi**2)-1)*dLdxi($xi) + $xi*(($xi**2)+3)*L($xi) + 2) / ((($xi**2)-1)**2);
}

sub dLdxi {
my ($xi) = @_;

if ($xi >= 1) {
return 1/(($xi**2)-1) * (1 - $xi*L($xi));

} elsif ( $xi >= 0) {
return $xi/2 * (log(1-($xi**2))-2) / ((1-($xi**2))**(1.5));

} else {
die "xi is out of range";
}
}

## Tag: util_funcs ##

sub join_data {
Expand Down

0 comments on commit 085dc45

Please sign in to comment.