Commit Graph

32 Commits

Author SHA1 Message Date
08b68c22de feat(poly): major work on preconditioner for block form of lane emden equation
working on a "smart" schur compliment preconditioner for the block form of the lane emden equation. Currently this is stub and should not be considered usable
2025-04-09 15:17:55 -04:00
acf5367556 fix(poly): bug fixing in block form
currently derivitive constraint is not working
2025-04-03 11:14:50 -04:00
dcc4381cbb refactor(poly): removed unused includes 2025-04-02 15:00:28 -04:00
e3afe90f37 feat(poly): moved to a block form for poly
essential dofs can be applied to both theta and phi (grad theta) if we move to a block form. I have done this derivation and made that change so that we can properly apply the central boundary condition to the slope
2025-04-02 14:57:37 -04:00
0880403850 fix(poly): have a much closer to working polytrope, still small divergence near core 2025-03-27 14:26:23 -04:00
b2ddbc41e7 fix(poly): increased default gamma and changed initial guess
The default gamma value has been upped to 1e4 which is enough to strongly constrain the solution to have zero slope at the core region. Further, the initial guess has been changed from a series expansion of theta to a simple quadratic that is one at origin and zero at the polytrope radius. This is faster to evaluate and seems to work just as well.
2025-03-26 12:34:30 -04:00
df3cf68e92 docs(src): updated headers 2025-03-19 13:50:01 -04:00
b3581d11ed feat(poly): added full constraint integrator function
not yet debugged
2025-03-19 13:49:21 -04:00
0ec1b6e751 feat(poly): find all connected elements to central vertex
In order to constrain the central slope we find all the elements connected to the central vertex. The slope will be approximated over these using the finite difference method
2025-03-19 11:15:37 -04:00
b98f6b6ebd feat(poly): started work on penalty term in variational form 2025-03-19 10:09:37 -04:00
f512f10096 test(tests/poly): poly test now uses interpolating function to set mesh radius 2025-03-18 11:19:25 -04:00
afc488abd1 fix(poly): coefficients properly handle chain rule 2025-03-18 11:18:46 -04:00
8dcdf92414 feat(poly): interpolating polynomial to find polytrope surface
Instead of treating the polytrope as a free boundary problem I have defined an interpolating polynominal, accurate to within 0.01 percent over n=[0,5) which is used to set the size of the domain for a given n
2025-03-18 10:15:51 -04:00
18e719fba1 refactor(header): brought auto header changes from main into polytrope branch 2025-03-18 07:21:47 -04:00
3f86d0ceb1 docs(src): added file headers to all files 2025-03-17 12:42:33 -04:00
88a45c7d09 test(tests/poly): removed some debugging output from poly test 2025-03-17 11:11:22 -04:00
b4615fc0aa fix(poly): working on solving polytrope 2025-03-14 09:12:40 -04:00
5300fa88a9 pulled from github 2025-03-14 09:11:13 -04:00
e75f9ada09 feat(polyMFEMUtils): changed slope constraint to look at all connected elements 2025-03-14 09:07:51 -04:00
0c2a5e3d9a refactor(polyMFEMUtils): removed unused methods 2025-03-14 08:02:30 -04:00
59162a1a54 feat(poly): constraint integrator
The NewtonSolver has been subclassed to try to auto enforce the zero boundary central condition by modifying the residual vector and the gradient matrix. This is a work in progress

BREAKING CHANGE:
2025-03-05 12:55:53 -05:00
cd6da7065b refactor(poly/coeff): renamed coefficients to be more descriptive 2025-03-05 12:54:47 -05:00
f61c8fae28 fix(poly): working on 3D polytrope
not working yet
2025-03-03 09:54:13 -05:00
6416d95260 feat(meshIO): LinearRescale method added
Rescaling a mesh by a linear transformation is a useful option so that we can start with a single "base" mesh and then rescale it to the dimensions needed for our problem. This commit adds the LinearRescale option too meshIO so that a unit sphere can be turned into a sphere of arbitrary radius (as an example).
2025-02-24 16:35:39 -05:00
d8789bd343 feat(polySolver): getters for polySolver 2025-02-23 14:11:18 -05:00
9925f56e34 fix(poly): polytrope converges to solution
first commit where the polytrope module converges to a solution. I have not yet validated if it is a correct solution
2025-02-20 16:05:02 -05:00
776174c093 refactor(macros): added macros class
macros provides a unified place to define macros which can be accessed at other points in the code. I defined a DEPRICATION_WARNING_OFF macro so we can disable those warnings for times when we cannot control them
2025-02-20 16:04:05 -05:00
ff299f8ce7 fix(poly): changed lambda from fespace to scalar
previously I had a lagrangian multipliers at every element; however, we are enforcing a global constraint so there need only be one lagrangian multiplier
2025-02-20 15:36:46 -05:00
1fd1e624f2 feat(poly): lagrangian constrained weak form of 3D lane-Emden
added a basic implimentation of the 3D lane emden equation using a lagrangian multiplier to constrain the value at the center of a spherical domain
2025-02-20 15:28:00 -05:00
b939fd68fa feat(poly): added first pass implimentation of 3D constrained lane-emden solver
This has not currently been tested and this commit should not be viewed as scientifically complete
2025-02-19 14:35:15 -05:00
7330fb9906 feat(poly): initial build system for polytrope 2025-02-14 10:50:07 -05:00
f4be5b3733 feat(poly): added skeleton of polytrope model
the polytrope module will be used as an initial guess to the solver. A skeleton of this has been imported from https://github.com/tboudreaux/FEMPolytrope

This module will need major updates still to handle 3D, proper boundary conditions, and to incorporate it with the rest of our meshing scheme
2025-02-12 16:44:10 -05:00